La hiérarchie des templates de WordPress 5.3

Dans WordPress il existe une hiérarchie pour vos templates (ou fichiers modèles si vous préférez) ce qui va permettre à WordPress de savoir comment afficher tel ou tel type de contenu. On parle de hiérarchie car WordPress va regarder si il trouve un template pour le type de contenu à afficher, et si il ne trouve pas il va en chercher un autre un peu plus générique et si il ne trouve toujours pas, il finira par retomber sur index.php qui lui est dans tous les cas obligatoire pour la définition d’un thème.

La hiérarchie des templates de WordPress https://developer.wordpress.org/files/2014/10/Screenshot-2019-01-23-00.20.04.png

Comment lire ce schéma?

Tout simplement commencez à gauche en choisissant le type de contenu à afficher. Suivez ensuite le cheminement et quand vous arrivez sur une case dont le fichier existe vous y êtes ?.

De manière générale les cases violettes sont les plus fréquemment utilisées (Primary Template), les vertes sont déjà un peu plus spécifiques (Secondary Template), et les oranges sont variables (Variable Template).

Donc en exemples…

Les pages

Pour la page d’accueil du site (Site Front Page) c’est le template front-page.php qui est appelé, à défaut page.php ou home.php suivant que votre site affiche une page ou un blog en accueil.

Le template variable page-$slug.php affichera si il existe la page définie par $slug. Par exemple vous créez une page contact depuis l’administration avec le slug contact, puis un fichier template page-contact.php. Le template se chargera donc de rendre cette page spécifique. Il est également possible de le faire avec l’id de la page page-3.php, mais ne le faite que pour votre propre thème, et non pour un thème destiné à être distribué.

Pour la page des résultats de recherche (Search Result Page) search.php à défaut index.php.

Et si la page n’existe pas (Error 404 Page) ce sera 404.php.

Les archives

Dans WordPress sitôt que vous cliquez sur une catégorie ou une étiquette, vous arrivez dans les archives (Archive Page). Le template est rendu avec le fichier archive.php. Cette page gère aussi l’affichage de la liste des articles du blog.

Il existe aussi les templates plus génériques date.php, category.php, tag.php, author.php, taxonomy.php et archive-$posttype.php$posttype peut prendre les valeurs (par défaut par le cœur de WordPress, d’autres valeurs sont possibles en fonction de vos plugins installés) :

  • post
  • page
  • attachment
  • revision
  • nav_menu_item

Les articles

C’est le fichier single.php qui va cette fois gérer l’affichage lorsque l’internaute aura cliqué sur le titre d’un article (Singular Page > Single Post Page) de votre blog.

Et les body class dans tout ça ?

Ha ben voilà une question quelle est bonne! Et bien tout simplement le nom de votre template se retrouvera dans les class du tag <body>. Par exemple avec le template page.php on aura <body class="... page ..."> et avec archive.php <body class="... archive ...">. Ceci vous permettra de customiser les CSS de chacun des templates.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *