Du global au spécifique (et vice-versa)
L’image la plus importante de ce tutoriel :
Ce schéma définit le chemin que WordPress emprunte pour choisir le template à utiliser. Dès que l’un d’eux correspond, il est utilisé et le chemin s’arrête là.
Par exemple, l’internaute veut afficher les archives d’Avril 2010 : blog.fr/2010/04
.
- WordPress rentre dans la boucle au niveau de
Archive Page
car il s’agit d’une page d’archive. - Ensuite il bifurque vers
Date Archive
car il s’agit d’une archive datée. - Ici on a écrit
/2010/04
. Il s’agit donc d’une archive mensuelle. - WordPress tombe alors sur
date.php
et l’utilisera s’il existe. - Si
date.php
n’existe pas, WordPress utilisera le templatearchive.php
. - Si ce dernier n’existe pas non plus, il utilisera
index.php
.
Etant donné que index.php
est le dernier recours, il est indispensable.
Beaucoup de gens confondent home.php
et index.php
parce qu’un thème peut se passe du premier mais pas du second. En effet, il est pratique d’utiliser index.php
comme page d’accueil. Comme ça, si un template n’existe pas, on affiche la page d’accueil.
Mais il faut comprendre la différence : home.php
est le template de la page d’accueil, index.php
est le template par défaut.
Globaliser
Si vous voyez que les templates date.php
, category.php
et tag.php
sont identiques, vous pouvez les supprimer et créer à la place un fichier archive.php
. De ce fait, vous gagnerez du temps à la maintenance si vous souhaitez modifier une partie du code.
Vous pouvez aller plus loin en utilisant uniquement index.php
avec quelques conditions PHP dans le code, mais nous verrons ça plus loin.
Attention, lorsque je dis que les templates sont identiques, cela ne veut pas dire qu’ils afficheront la même chose sur le site, c’est juste qu’ils utilisent le même code. Leur structure est donc identique.
Par exemple, date.php
peut avoir un header, la liste des billets, et un footer. category.php
peut avoir exactement le même code, la même structure. C’est WordPress qui sera assez intelligent pour afficher des billets différents dans les deux cas (selon la date dans un cas, selon la catégorie choisie dans l’autre).
Spécifier
Dans l’autre sens, il est possible pour un même template de créer une version plus spécifique. Par exemple, vous voulez une page différente pour la catégorie « Hardware ».
Au lieu d’utiliser le template archive.php
ou category.php
, nous pouvons créer un template spécifique : category-hardware.php
.
Cette méthode de templates très spécifique s’avèrera très utile pour créer des templates de Page (i.e. de Pages WordPress). Nous verrons ça plus loin aussi.