Ce tutoriel WordPress est entièrement gratuit.
Merci de désactiver votre bloqueur de pub ! =)

Hiérarchie des Templates

Selon la page appelée, WordPress utilisera un des templates existants. Mais lequel aura la priorité ?

Du global au spécifique (et vice-versa)

L’image la plus importante de ce tutoriel :

hierarchie-theme-wordpress

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.

  1. WordPress rentre dans la boucle au niveau de Archive Page car il s’agit d’une page d’archive.
  2. Ensuite il bifurque vers Date Archive car il s’agit d’une archive datée.
  3. Ici on a écrit /2010/04. Il s’agit donc d’une archive mensuelle.
  4. WordPress tombe alors sur date.php et l’utilisera s’il existe.
  5. Si date.php n’existe pas, WordPress utilisera le template archive.php.
  6. 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.phpcategory.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.