Articles

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. }