173 votes

Comment obtenir le nom de la page actuelle dans WordPress?

Ce code php peut être utilisé pour récupérer l'actuel nom de la page dans un thème WordPress?

Toutes les solutions que j'ai vu jusqu'à présent (the_title(), get_page()->post_name, get_post(), etc) ne fonctionnent pas pour une page qui contient post entrées. Ils seront tous de retour, le nom de la dernière entrée de blog.

Autrement dit, supposons que vous disposez d'une page dans WordPress avec le nom "Mes News". Cette page est défini comme le "post de la page". Ajouter un couple de postes à la page. Maintenant, ce que l'API peut être utilisée pour récupérer la chaîne de caractères "mes nouvelles" au lieu du nom de la dernière après?

Edit:

J'ai trouvé la variable suivante qui semble fonctionner.

$wp_query->queried_object->post_name

C'est en fait l'URL de la version imprimable de la page nom (slug), qui est ce que je cherchais. Cela a été testé avec le modèle par défaut (twentyten). Je ne suis vraiment pas sûr de savoir pourquoi les deux variables étant donné ci-dessous ne fonctionnent pas sur mon site. Grâce keatch pour l' print_r() astuce.

Maintenant, pourquoi est-ce une info cachée au fond?

200voto

AJJ Points 3225

Le WP variable globale $pagename devrait être disponible pour vous, j'ai juste essayé avec la même configuration que vous avez spécifié.

$pagename est définie dans le fichier wp-includes/theme.php, à l'intérieur de la fonction get_page_template(), ce qui est évidemment appelée avant votre thème de page fichiers sont analysés, il est disponible à n'importe quel point à l'intérieur de vos modèles pour les pages.

EDIT:

  • Bien que cela ne semble pas être documenté, l' $pagename var n'est installé que si vous utilisez des permaliens. Je suppose que c'est parce que si vous ne les utilisez pas, WP n'a pas besoin de la page slug, de sorte qu'il n'est pas configuré.

  • $pagename n'est pas définie si vous utilisez la page comme une page d'accueil statique.

  • C'est le code de l'intérieur /wp-includes/theme.php qui utilise la solution vous l'avez souligné lors de l' $pagename ne peut être:

    $pagename = get_query_var('pagename');

43voto

goksel Points 1265

Mon approche pour obtenir le nom de la limace de la page

 $slug = basename(get_permalink());
 

27voto

GregB Points 74
 <?php wp_title(''); ?>
 

Cela a fonctionné pour moi, si je comprends bien, vous voulez obtenir le nom de la page sur une page qui a des entrées de publication?

25voto

keatch Points 1669

Ok, vous devez saisir le titre de la page AVANT la boucle.

 $page_title = $wp_query->post->post_title;
 

Vérifiez la référence: http://codex.wordpress.org/Function_Reference/WP_Query#Properties .

Fait une

 print_r($wp_query)
 

avant la boucle pour voir toutes les valeurs de l'objet $ wp_query

6voto

user1581293 Points 61

Essaye ça:

 $pagename = get_query_var('pagename');
 

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X