WordPress : Comment puis-je obtenir le nom de la page actuelle dans WordPress ?
Quel code PHP peut être utilisé pour récupérer le nom de la page courante dans un thème WordPress ?
Toutes les solutions que j’ai vues jusqu’à présent ( the_title()
, get_page()->post_name
, get_post()
, etc.) ne fonctionnent pas pour une page contenant des entrées de publication. Ils renverront tous le nom de la dernière entrée de blog.
En d’autres termes, supposons que vous ayez une page créée dans WordPress avec le nom « My News ». Cette page est définie comme la « page de publication ». Ajoutez quelques messages à la page. Maintenant, quelle API peut être utilisée pour récupérer la chaîne « my-news » au lieu du nom du dernier message ?
J’ai trouvé la variable suivante qui semble fonctionner.
$wp_query->queried_object->post_name
Il s’agit en fait de la version URL conviviale du nom de la page (slug), ce que je cherchais également. Cela a été testé avec le modèle par défaut (Twenty Ten). Je ne sais vraiment pas pourquoi les deux variables indiquées ci-dessous ne fonctionnent pas sur mon site. Merci à Keatch pour le print_r()
tuyau.
Maintenant, pourquoi cette information est-elle cachée si profondément ?
Solution n°1 trouvée
Mon approche pour obtenir le nom du slug de la page :
$slug = basename(get_permalink());
Solution n°2 trouvée
La variable globale WordPress $pagename
devrait être disponible pour vous. Je viens d’essayer avec la même configuration que vous avez spécifiée.
$pagename
est défini dans le fichier wp-includes/theme.php, à l’intérieur de la fonction get_page_template()
, qui est bien sûr appelée avant que les fichiers de thème de votre page ne soient analysés, il est donc disponible à tout moment dans vos modèles de pages.
-
Bien qu’il ne semble pas être documenté, le
$pagename
var n’est défini que si vous utilisez des permaliens. Je suppose que c’est parce que si vous ne les utilisez pas, WordPress n’a pas besoin du slug de page, donc il ne le configure pas. -
$pagename
n’est pas défini si vous utilisez la page comme page d’accueil statique.
- C’est le code à l’intérieur de /wp-includes/theme.php, qui utilise la solution que vous avez indiquée lorsqu’elle
$pagename
ne peut pas être définie :
—
if ( !$pagename && $id > 0 ) {
// If a static page is set as the front page, $pagename will not be set. Retrieve it from the queried object
$post = $wp_query->get_queried_object();
$pagename = $post->post_name;
}
Solution n°3 trouvée
<?php wp_title(''); ?>
Cela a fonctionné pour moi.
Si je comprends bien, vous souhaitez obtenir le nom de la page sur une page contenant des entrées de publication.
0 commentaire