En parcourant la documentation Wordpress , il est dit que cela se is_page_template()
compare à un "nom de modèle", s'il est fourni.
J'ai un modèle stocké dans page-homepage.php
appelé Homepage
:
/*
* Template Name: Homepage
* Description: The template for displaying the homepage
*/
Et j'ai du code que je souhaite exécuter dans mon functions.php lorsque j'utilise ce modèle:
if (is_page_template('Homepage')) {
...
Mais il n'est pas déclenché lorsque je suis sur une page qui utilise ce modèle.
Lorsque je regarde le code que Wordpress exécute is_page_template()
, il semble qu'il vérifie réellement le nom du document, pas le nom du modèle ...?
function is_page_template( $template = '' ) {
$page_template = get_page_template_slug( get_queried_object_id() );
if ( $template == $page_template )
return true;
Dans mon cas, il semble que ce ne $page_template
soit page-homepage.php
pas le nom du modèle, comme le suggère la documentation ...?
Est-ce que je fais quelque chose de mal?
page-template
codex
Django Reinhardt
la source
la source
Réponses:
Votre condition doit être écrite comme ceci:
Je crois que la confusion est le résultat de deux choses:
is_page_template()
montre laget_page_template_slug()
fonction à sa base. Cette fonction renvoie en fait un nom de fichier, pas le slug du modèle. https://codex.wordpress.org/Function_Reference/get_page_template_slugLorsque vous spécifiez un argument pour la
is_page_template()
fonction (comme dans l'exemple ci-dessus), le chemin du fichier est relatif à la racine du thème.Cette fonction ne fonctionnera pas à l'intérieur de la boucle.
la source
get_page_template_slug()
cela ne retourne pas réellement une limace!Je pense que la meilleure chose à dire est qu'il vérifie le nom du fichier et dans votre cas ce serait page-homepage.php. donc:
Il faut également penser au fait que le fichier modèle est réellement stocké dans un autre dossier à l'intérieur du thème. Lire la suite
Une dernière chose,
Template Name: Homepage
c'est généralement ce qui est utilisé pour identifier le modèle lors de la création d'une page ou d'un article.la source
page-templates/page-homepage.php
est différent du modèle dans la racine du thème.