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.

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
où $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.