Face à une requête entrante, WordPress ne demande jamais au thème « quel fichier dois-je utiliser ? » : il applique un ordre de priorité fixe, du plus spécifique au plus générique, et retient le premier fichier trouvé dans le thème actif qui correspond à cet ordre.
Logique générale de sélection
Pour un article de type « produit » et de slug « chaise-oslo », la recherche suit typiquement cette séquence : single-produit-chaise-oslo.php, puis single-produit.php, puis single.php, puis singular.php, et enfin index.php en dernier filet de sécurité. Cette même logique s’applique, avec des noms de fichiers différents, aux pages, archives, résultats de recherche et pages d’erreur 404.
Vérifier quel gabarit est utilisé
// À placer temporairement dans functions.php
add_action( 'wp_footer', function () {
global $template;
echo '';
} );
Ce commentaire HTML, visible dans le code source, confirme quel fichier a réellement été chargé.
Différence entre thèmes classiques et thèmes blocs
- Un thème classique résout cette hiérarchie via des fichiers PHP recherchés dans son dossier ; un thème bloc la résout via des fichiers HTML placés dans
templates/, avec une logique de correspondance équivalente mais un moteur de résolution distinct. - Un thème enfant peut fournir une surcharge de gabarit qui prend systématiquement le pas sur le fichier équivalent du thème parent, sans modifier ce dernier.
- Une extension peut elle aussi injecter des gabarits dans cette hiérarchie via le filtre
template_include, ce qui explique pourquoi certains plugins de type CPM affichent leurs propres mises en page.