Un template hierarchy pour cibler les pages de commentaires : Posez moi la question n°3

WordPress 4.1 introduit des template tags. A quand un template hierarchy pour cibler par exemple les pages de commentaires d'un post type ?
— Daniel Roch Ⓦ SeoMix (@rochdaniel) December 17, 2014
Daniel Roch a posé cette question sur twitter avec le hashtag #WPAide, j’y réponds alors avec du code !
Template hierarchy
Le template hierarchy ou la hiérarchie des modèles de WordPress est la façon dont WordPress va choisir le fichier du thème à inclure selon la page visitée.
Par exemple un article est habituellement single.php
, la page 404 est 404.php
, la page d’un mot-clé est tag.php
etc
Pour rappel, ce graphique (que vous devriez déjà avoir en favori) vous récapitule tous les templates possibles.
Question pour un champion
Voilà alors la question de Daniel. Il est vrai qu’en relisant le template hierarchy, il n’est pas possible de cibler les pages de commentaires, c’est à dire les articles qui paginent les commentaires.
Le template chargé pour un post restera alors single.php
, et non paged.php
(qui est là pour les archives uniquement) ni même autre chose.
Réponse pour un Julio
Heureusement un hook existe pour filtrer la valeur du template à inclure lorsque WordPress a fait son choix.
Nous allons l’utiliser et détourner son comportement :
Le hook est donc template_include
et je vais lire la variable cpage
qui vaut vide si pas de pagination ou 1, 2 etc si les commentaires sont paginés sur cette page.
J’ajoute alors arbitrairement -paged
avant l’extension, je vérifie au passage que ce fichier existe avant de le retourner.
Prenons l’exemple d’un article de blog, avec commentaires paginés, il vous faudra créer le fichier single-paged.php
, qui peut être basé depuis single.php
.
edit : ce code ne fonctionne pas pour le cas où vous avez single.php
dans votre thème parent mais PAS dans votre thème enfant, car je vais alors chercher single-paged.php
dans le parent, alors que vous l’avez mis dans le thème enfant. Idem pour un plugin, si vous mettez ce code dans un plugin avec un template paged, je ne vais pas le lire, à vous d’adapter le code pour faire ce que vous avez besoin.
Il ne vous reste plus qu’à créer ce fichier et vous aurez alors les commentaires paginés avec un template différent pour y ajouter une meta noindex par exemple.
Vous aimez ? Partagez !
Partager la publication « Un template hierarchy pour cibler les pages de commentaires : Posez moi la question n°3 »
Réagir à cet article