web-dev-qa-db-fra.com

Get_template_part dans un dossier

J'ai donc le code suivant pour rechercher des modèles dans un thème personnalisé sur lequel je travaille:

<?php $my_theme = wp_get_theme();
get_template_part( 'masthead',  $my_theme->Template); ?>

Fondamentalement, il effectue une recherche sur un fichier appelé "masthead-themename.php". Si ce fichier n'existe pas, il recherche un fichier appelé "masthead.php". Cela fonctionne comme prévu.

Cependant, je souhaiterais que quelque chose recherche le fichier dans un dossier appelé "modèles" comme première option et si ce n'est pas le cas, recherchez le nom du modèle dans le dossier racine du thème.

J'ai essayé ça

<?php $my_theme = wp_get_theme();
get_template_part( 'templates/masthead',  $my_theme->Template); ?>

Mais cela ne fonctionne que si le fichier existe dans le dossier du modèle. Si le fichier existe dans le dossier de thème de la racine, il ne le reconnaît pas.

Des idées?

Merci!

1
Johann

Je suppose que vous avez un fichier dans templates/masterhead-templatename.php, et ça marche, ça va.

Corrigez-moi si je me trompe, vous voulez localiser ce fichier comme ceci masterhead-templatename.php, en gros un dossier, mais cette fonction wordpress ne fonctionne pas comme ça.

Si le fichier existe dans le dossier de thème de la racine, il ne le reconnaît pas.

Ce n'est pas censé le faire. Il recherche un fichier templates/masterhead.php, puisquetemplates/masterhead-templatename.php n'a pas été trouvé.


La spécification de fonction get_template_part( 'templates/masthead', $my_theme->Template); recherche comme ceci:

STYLESHEETPATH/templates/masthead-themename.php
STYLESHEETPATH/templates/masthead.php
TEMPLATEPATH/templates/masthead-themename.php
TEMPLATEPATH/templates/masthead.php

Quel fichier est trouvé, inclus et la recherche s'arrête évidemment.

1
Ivan Hanák