Comment faire en sorte que get_template_part vérifie toujours le thème enfant en premier?

8

Comment puis-je forcer WP à toujours vérifier le dossier du thème enfant en premier lors de l'exécution get_template_part?

Exemple: charge thème des enfants get_template_part('content', 'inventory')dans single.php. Étant donné que tous les thèmes enfants (et il y en a beaucoup) partagent la même base de modèle d'inventaire commune, le fichier se content-inventory.phptrouve dans le thème parent. Jusqu'ici tout va bien.

Je voudrais ajouter une petite section audit modèle d'inventaire qui sera unique pour chaque thème enfant. L'ajout get_template_part('content', 'inventory-special')dans content-inventory.phpne vérifiera pas d'abord le répertoire du thème enfant.

m-torin
la source
3
À vous deux qui avez voté contre ma réponse et n'avez pas expliqué pourquoi, merci pour rien. Comment quelqu'un peut-il s'améliorer avec des critiques négatives?
m-torin

Réponses:

5

C'est le cas par défaut. La get_template_part()fonction utilise les locate_template()cascades dans les fichiers de modèle dans l'ordre de spécificité et de chemin de feuille de style / chemin de modèle.

Donc, si votre thème enfant comprend un content-inventory.php, alors get_template_part()il l'inclura; sinon, il cherchera content-inventory.phpdans le thème parent. S'il ne le trouve pas, il le recherchera d' content.phpabord chez l'enfant, puis chez le parent.

ÉDITER:

Essayer de comprendre ce que vous voulez dire; veuillez clarifier si je me méprends ...

Vous souhaitez inclure un nouveau fichier de pièce de modèle dans un fichier de modèle Parent-Theme appelé content-inventory.php, non?

La seule façon, AFAIK, que vous pouvez faire est de copier content-inventory.phpdans votre thème enfant , puis d'ajouter le nouvel get_template_part()appel si nécessaire.

Si un fichier nommé content-inventory.phpest inclus à la fois dans le thème parent et dans le thème enfant, WordPress utilisera toujours la version du thème enfant , s'il est inclus à l'aide get_template_part().

Chip Bennett
la source
@Kaiser, @Chip Bennett: WP vérifiera évidemment le thème parent content-inventory.php. Le Codex et l'expérience simple le montrent clairement. Cependant, si le fichier recherché (niveau 2) se trouve dans le dossier de thème parent, WP ne vérifie pas le thème enfant pour un get_template_partcontenu dans le fichier recherché (une inclusion de troisième niveau). Cela a-t-il fonctionné différemment pour vous?
m-torin
Je ne comprends pas votre question / problème. Pour tout nom de fichier de modèle donné, WordPress vérifie toujours d' abord le thème enfant . Pouvez-vous expliquer ce que vous entendez par fichiers de deuxième et troisième niveaux?
Chip Bennett