Templates maison : Posez-moi la question n°4
Vendredi 23 janvier se déroulait le WordCamp Paris 2015.
Lors de ce WordCamp et comme en 2014, je tenais le Happiness Bar accompagné de Alex Concha et d’autres bénévoles désireux d’aider les visiteurs.
Question time
La toute première question de cette matinée était technique, la voici :
« Comment charger un template quand mon article a un format spécifique (post format) ? Et il faut que ça fonctionne même si je suis dans un type de contenu personnalisé (Custom Post Type, CPT) »
Voici ma réponse, sous forme de code :
Ces quelques lignes suffisent pour que WordPress supporte les templates single pour les posts format.
Explication time
Le filtre utilisé est template_include
dans lequel WordPress m’envoie le chemin vers le fichier qu’il a choisi pour la page chargée.
Dans notre cas ce sera single.php
dans son chemin, par exemple /home/www/wp-content/themes/twentyfifteen/single.php
, ou la même chose avec un CPT comme single-cpt.php
.
Mon astuce vérifie alors que nous ne sommes que dans le cas d’une page simple, la single de n’importe quel type de post, hiérarchique ou non, du moment qu’il supporte les formats et qu’il en a un assigné.
A vous d’adapter cette partie si vous ne souhaitez pas gérer les formats sur tous vos CPTs.
Ensuite je recrée la nouvelle chaà®ne du fichier à chercher, pour cela je ne garde que le nom du fichier sans l’extension que je concatène avec -$post-format
puis l’extension .php
.
Exemple pour single.php
avec le format « image » :
/single.php -> /single-image.php
Exemple pour single-cpt.php
avec le format « video » :
/single.php -> /single-cpt-video.php
Je vérifie ensuite que ce fichier existe, si c’est le cas, je le retourne à la place de l’ancien, j’ai filtré !
Aviez-vous déjà eu besoin de ce template ? Maintenant, vous pourrez !
Réagir à cet article