web-dev-qa-db-fra.com

get_template_part et noms de fichiers modèles

J'ai un type de message personnalisé qui utilisera une boucle dans deux endroits différents et je voulais faciliter la maintenance de ces boucles. Je me suis rappelé que get_template_part () est disponible et j'ai pensé que ce serait le moment idéal pour s'y habituer. Cependant, ce qui m’a arrêté, c’est de savoir comment configurer un fichier pour les boucles afin que je puisse appeler les parties spécifiques avec précision.

Jusqu'à présent, Google n'a pas été utile pour comprendre le fonctionnement réel de get_template_part () et du fichier loop.php de twentyten et l'appel des 3 parties. Je l'ai dupliqué, simplifié et prêt à être modifié pour ma version CPT, mais c'est tout.

De l'aide?

1
tw2113

Le Codex a une explication très correcte de la logique get_template_part() :

En supposant que le dossier du thème est wp-content/themes, que le thème parent est vingt et que le thème enfant est twentytenchild, le code suivant -

<?php get_template_part( 'loop', 'index' ); ?>

fera un PHP require () pour les fichiers nommés dans cet ordre:

  1. wp-content/themes/twentytenchild/loop-index.php

  2. wp-content/themes/twentytenchild/loop.php

  3. wp-content/themes/twentyten/loop-index.php

  4. wp-content/themes/twentyten/loop.php

En gros, vous pouvez avoir des modèles plus génériques et des modèles plus spécialisés. Le modèle spécialisé est recherché avant générique. C'est à peu près tout à ce sujet.

1
Rarst

Je l'ai toujours utilisé pour inclure des fichiers situés dans mon répertoire de thèmes.

Donc, si j'ai un dossier dans le répertoire theme appelé functions qui a un fichier nommé utils.php (wp-content/themes/mytheme/functions/utils.php), vous pouvez simplement inclure le fichier comme suit

get_template_part( 'functions/utils' ); // includes /functions/utils.php - .php gets added automatically

ou des fichiers à la racine du thème

get_template_part( 'sidebar' ); // includes sidebar.php

Je n'ai pas vraiment la façon de faire les 2 paramètres. Cela fonctionne bien pour moi d'utiliser simplement la structure du chemin de répertoire pour les fichiers et de laisser le type de fichier.

1
jaredwilli