WordPress.org
Top
Plus d’informations #Plus d’informations
Modèle de page dans un sous-répertoire #Modèle de page dans un sous-répertoire
Si le modèle de page est situé dans un sous-répertoire du thème (depuis WP 3.4), ajoutez le nom du dossier et une barre oblique au nom de fichier du modèle, par exemple :
is_page_template( 'templates/about.php' );
Haut
Ne peut pas être utilisé à l’intérieur de la boucle #Ne peut pas être utilisé à l’intérieur de la boucle
En raison de certaines variables globales qui sont écrasées pendant la boucle is_page_template()
ne fonctionnera pas. Pour l’utiliser après The Loop, vous devez appeler wp_reset_query() après The Loop.
Alternative #Alternative
Puisque le slug du modèle de page est stocké à l’intérieur du post_meta pour tout post qui a été assigné à un modèle de page, il est possible d’interroger directement le post_meta pour voir si une page donnée a été assignée à un modèle de page. C’est la méthode que is_page_template() utilise en interne.
La fonction get_page_template_slug( $post_id ) retournera le slug du modèle de page actuellement attribué (ou une chaîne vide si aucun modèle n’a été attribué – ou false si le $post_id ne correspond pas à une page réelle). Vous pouvez facilement utiliser ceci n’importe où (dans The Loop, ou en dehors) pour déterminer si une page quelconque s’est vue attribuer un modèle de page.
// in the loop: if ( get_page_template_slug( get_the_ID() ) ){ // Yep, this page has a page template } // anywhere: if ( get_page_template_slug( $some_post_ID ) ){ // Uh-huh. }