comment obtenir l'identifiant de page d'une page en utilisant le slug de page
7 réponses
- votes
-
- 2013-06-13
Utilisez
get_page_by_path($page_path)
:$page = get_page_by_path( 'about' ); echo get_the_title( $page );
Cela renverra un objet depublicationnormal.
Documentation:
https://developer.wordpress.org/reference/functions/get_page_by_path/
https://developer.wordpress.org/reference/functions/get_the_title/Use
get_page_by_path($page_path)
:$page = get_page_by_path( 'about' ); echo get_the_title( $page );
This will return a regular post object.
Documentation:
https://developer.wordpress.org/reference/functions/get_page_by_path/
https://developer.wordpress.org/reference/functions/get_the_title/-
Quefaire sije veux l'identifiant d'unepageenfant?What if it's a child page's id I want?
- 0
- 2013-06-13
- freaky
-
@freaky Lafonctionprend uniquement le slug depage,pas le slugparent.Les slugs étant uniques,vousn'obtiendreztoujours qu'une seulepage.@freaky The function takes just the page slug, not the parent slug. Since slugs are unique, you will always get just one page.
- 2
- 2013-06-13
- fuxia
-
Merci,celafonctionneet pour lapageenfant,j'ai dûnaviguer comme des hits `$page=get_page_by_path ('about/child');`Thank you it is working and for child page I had to navigate like hits `$page = get_page_by_path( 'about/child' );`
- 3
- 2013-06-13
- freaky
-
Justepour clarifier,`get_page_by_path` utilise le champ`post_name`en interne,pas `post_slug`.Just to clarify, `get_page_by_path` uses the `post_name` field internally, not `post_slug`.
- 0
- 2018-04-09
- colefner
-
Pour être clair,cela utilise le chemin de lapageet non lenom de lapage,n'est-cepas?Ensuite,unepageintitulée "Àpropos denous" l'argument devrait être "àpropos denous",n'est-cepas?sansbarres obliques de début ou defin?Just to be clear, this uses the page path and not the page name, correct? Then a page named "About us" the argument should be "about-us", correct? with no beginning or trailing slashes?
- 0
- 2018-07-25
- user658182
-
Oui,@ user658182Yes, @user658182
- 0
- 2018-07-25
- fuxia
-
- 2015-03-13
J'utilise ceci ..
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.
I've been using this ..
function get_id_by_slug($page_slug) { $page = get_page_by_path($page_slug); if ($page) { return $page->ID; } else { return null; } }
Hope this will help someone.
-
Pourquoi l'envelopper dans unefonction?`get_page_by_path` renvoie déjànull…Why wrapping it in a function? `get_page_by_path` already returns null …
- 0
- 2019-03-01
- GDY
-
Parce que la question OP veut retourner l'ID,pas l'objet depage.Because the OP question wants to return ID, not the page object.
- 0
- 2019-10-16
- user1158023
-
- 2013-06-13
Il a déjà été demandéet répondu sur ceforum.Je colle lemême code àpartir de là. Utilisez cettefonctionpour récupérer l'identifiant de lapage.
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; }
It has been already asked and answered on this forum. I am pasting the same code from there. Use this function to retrieve page id.
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; }
-
- 2016-10-08
J'aieu desproblèmes avec la réponse choisieen essayant d'utiliser le codeplusieursfois dans lamêmepage.Il a continué à affichertout le contenu demespagesen mêmetemps dans chaqueinstance.Je suis donc retourné à la réflexionet j'aiproposé cette approcheplus simplebasée sur la documentation du 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 celapeutencore être utilepour quelqu'un là-bas; D
I had problems with the chosen answer when trying to use the code several times in the same page. It kept on displaying all of my pages content at the same time in every instance. So I went back to thinking and came up with this simpler approach based on the WordPress Codex's documentation:
<?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(); ?>
Maybe it can still be helpful for somebody out there ;D
-
- 2019-04-05
Beaucoup de réponsesici semblenttrop complexes oune décriventpas comment obtenir l'ID depage spécifiquement.
$page = get_page_by_path("your-page-slug"); if ($page) { $page_id = $page->ID; echo $page_id; }
Dans la description ci-dessus,nous avons attribué l'objetpost à $page - Unefois que vous avez l'objetpost,vouspouvez obtenir l'une desinformations décritesici: https://codex.wordpress.org/Class_Reference/WP_Post
$page->ID $page->post_status $page->post_title
et bienplus
A lot of answers here that seem overly complex, or don't describe how to get the page ID specifically.
$page = get_page_by_path("your-page-slug"); if ($page) { $page_id = $page->ID; echo $page_id; }
In the above description we've assigned the post object to $page - Once you have the post object you can get any of the info described here: https://codex.wordpress.org/Class_Reference/WP_Post
$page->ID $page->post_status $page->post_title
and a lot more
-
- 2020-08-31
Ilexiste unefonction url_to_postid depuis WordPress v1.0.0 :) Cettetâcheest laplus simple à réaliseren utilisant cettefonction.
Lorsque lapageest lapage depremierniveau,seul le slug doit êtreindiqué.
parexemple
url_to_postid('slug');
Lorsque lapageest dans leniveau de hiérarchieinférieur (c'est-à-dire qu'elle a unparent),vous devez ajouter le slugparent divisépar unebarre oblique comme ceci:
url_to_postid('parent-slug/child-slug');
There is a function url_to_postid since WordPress v1.0.0 :) This task is easiest to achieve by using this function.
When page is top-level page, only slug has to be given.
e.g.
url_to_postid('slug');
When the page is in lower hierarchy level (i.e. it has parent) you have to prepend parent slug divided by slash like so:
url_to_postid('parent-slug/child-slug');
-
- 2018-05-31
<?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 sera utilepour quelqu'un.
<?php function get_page_ID_by_slug( $slug ) { $page = get_page_by_path( $slug ); if ( $page ) { return (int) $page->ID; } else { return null; } } ?>
I hope this suggestion is helpful for someone.
Je suis asseznouveau dans wordpresset jeme demandais sije pourrais obtenir un
page id
avec sonslug
.Est-cepossible s'il vousplaît laissez-moi savoir.