web-dev-qa-db-fra.com

comment obtenir l'identifiant d'une page en utilisant un slug de page

Je suis assez nouveau sur wordpress et je me demandais si je pouvais obtenir un page id avec sa slug. Est-il possible s'il vous plaît faites le moi savoir.

31
freaky

Utilisez get_page_by_path($page_path):

$page = get_page_by_path( 'about' );
echo get_the_title( $page );

Cela retournera un objet post normal.

42
fuxia

Je l'utilise ..

function get_id_by_slug($page_slug) {
    $page = get_page_by_path($page_slug);
    if ($page) {
        return $page->ID;
    } else {
        return null;
    }
} 

J'espère que cela aidera quelqu'un.

14
Ibnul Hasan

Il a déjà été demandé et répondu sur ce forum. Je colle le même code à partir de là. Utilisez cette fonction pour récupérer l'identifiant de la page.

 function get_page_by_slug($page_slug, $output = OBJECT, $post_type = 'page' ) { 
  global $wpdb; 
   $page = $wpdb->get_var( $wpdb->prepare( "SELECT ID FROM $wpdb->posts WHERE post_name = %s AND post_type= %s AND post_status = 'publish'", $page_slug, $post_type ) ); 
     if ( $page ) 
        return get_post($page, $output); 
    return null; 
  }
9
Vikas Bhardwaj

J'ai eu des problèmes avec la réponse choisie en essayant d'utiliser le code plusieurs fois dans la même page. Il continuait d'afficher tout le contenu de mes pages en même temps dans tous les cas. Je suis donc revenu à la réflexion et ai proposé cette approche plus simple basée sur la documentation de WordPress Codex :

<?php $query = new WP_Query( array( 'pagename' => 'about-me' ) );
        while ( $query->have_posts() ) {
        $query->the_post();
        echo '<h2>'. get_the_title() .'</h2>';
        the_content();
    }
    wp_reset_postdata();
?>

Peut-être que cela peut toujours être utile pour quelqu'un là-bas; D

3
<?php  function get_page_ID_by_slug( $slug ) {
    $page = get_page_by_path( $slug );
    if ( $page ) {
        return (int) $page->ID;
    }
    else {
        return null;
    }
}
?>

J'espère que cette suggestion est utile pour quelqu'un.

0
Dipika

Beaucoup de réponses ici semblent trop complexes, ou ne décrivent pas comment obtenir spécifiquement l'ID de page.

            $page = get_page_by_path("your-page-slug");
            if ($page) {
                $page_id =  $page->ID;
                echo $page_id;
            }

Dans la description ci-dessus, nous avons assigné l'objet post à $ page - une fois que vous avez l'objet post, vous pouvez obtenir les informations décrites ici: https://codex.wordpress.org/Class_Reference/WP_Post

            $page->ID
            $page->post_status
            $page->post_title

et beaucoup plus

0
dbmpls