WordPress : Comment puis-je obtenir le nom de la page actuelle dans WordPress ?

Publié par Jean-Michel le

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 $pagenamedevrait être disponible pour vous. Je viens d’essayer avec la même configuration que vous avez spécifiée.

$pagenameest 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 $pagenamevar 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.

  • $pagenamen’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 $pagenamene 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.

Catégories : Wordpress

Jean-Michel

Jean-Michel est en charge de la partie blog du site. Il met en place la stratégie de contenu et répond aux questions fréquentes sur Wordpress.

0 commentaire

Laisser un commentaire

Avatar placeholder

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *