Les templates sur WordPress
Ce guide liste les templates les plus utilisés dans le CMS WordPress. De la page d’un article à la page d’accueil, ce guide explique le fonctionnement de chacun des templates.
Les templates WordPress (ou modèle de page en français) sont des pièces maîtresses qui permettent de générer les pages de votre site Internet.
Certains de ces modèles sont utilisés sur toutes les pages comme par exemple l’en-tête, le pied de page ou la sidebar. Les autres modèles affichent un contenu dans des conditions spécifiques.
Parmi la quantité des modèles existants, quel fichier de template sera utilisé par WordPress quand il affiche un certain type de contenu ?
La hiérarchie des templates WordPress est disponible sur ce schéma. Il détaille la structure et le fonctionnement de tous les templates.
Pour vous aider à mieux comprendre ce schéma, voici une explication sur les templates WordPress les plus utilisés lors de la création d’un thème.
Page d’accueil
index.php, home.php
Modèle appelé lors de l’initialisation du thème.
Si le fichier home.php n’existe pas, le fichier index.php sera appelé. Attention vous devez obligatoirement avoir un fichier index.php dans votre thème (même vide) sinon il ne sera pas disponible dans l’administration.
On utilise souvent à tort le fichier index.php comme template d’accueil. Il faut savoir qu’index.php n’est qu’un fallback en cas d’oubli d’un fichier. Pour créer une page d’accueil, le fichier a utilisé est home.php
En-tête
header.php
Modèle contenant toutes les balises d’entête et les différentes balises meta.
Pour inclure l’entête dans un modèle, utilisez la fonction get_header().
header-{slug}.php
Il utilise le même fonctionnement que le fichier header.php sauf qu’il faut préciser le slug du fichier dans la fonction d’appel de l’entête. Par exemple, si notre fichier se nomme header-article.php, on affiche le contenu à l’aide de get_header(‘article’).
Pied de page
footer.php
Modèle correspondant au pied de page d’un thème.
Ce fichier peut être appelé grâce à la fonction get_footer().
footer-{slug}.php
Son fonctionnement est le même que le fichier footer.php sauf qu’il faut préciser le slug du fichier dans la fonction d’appel du pied de page. Par exemple, si notre fichier se nomme footer-article.php, on affiche le contenu à l’aide de get_footer('article')
.
Sidebar
sidebar.php
Modèle contenant les widgets d’un thème.
Pour inclure une sidebar dans un modèle, utilisez la fonction get_sidebar()
.
sidebar-{slug}.php
Même fonctionnement que le fichier sidebar.php sauf qu’il faut préciser le slug du fichier dans la fonction d’appel de la sidebar. Par exemple, si notre fichier se nomme sidebar-article.php, on affiche le contenu à l’aide de get_sidebar('article')
.
Pages d’archives
archive.php
Modèle par défaut pour afficher la liste des articles.
Ce modèle est utilisé quand un auteur, une date ou une catégorie est demandé. Si les fichiers category.php, author.php ou date.php existent, ils seront utilisés à la place de archive.php
archive-{post_type}
Il fonctionne de la même manière que le fichier archive.php et il permet d’afficher la liste des articles du Custom Post Type indiqué avec le slug “post_type” du fichier. Par exemple, si notre fichier se nomme archive-voiture.php, on affiche les articles du Custom Post Type avec le slug “voiture”.
category.php
Modèle pour afficher la liste des articles d’une catégorie.
Ce modèle est utilisé pour toutes les catégories. Si le fichier category.php n’existe pas, WordPress utilisera le fichier archive.php
category-{slug}.php, category-{id}.php
Il s’utilise comme que le fichier category.php et il permet d’afficher la liste des articles de la catégorie indiquée soit avec le “slug” ou l'”id” du fichier. Par exemple, si notre fichier se nomme category-porche.php, on affiche les articles de la catégorie avec le slug “porche”.
tag.php
Modèle pour afficher la liste des articles d’un tag.
Ce modèle est utilisé pour tous les tags. Si le fichier tag.php n’existe pas, WordPress utilisera le fichier archive.php
tag-{slug}.php, tag-{id}.php
Son fonctionnement est identique à celui du fichier tag.php et il permet d’afficher la liste des articles du tag indiqué soit avec le “slug” ou l'”id” du fichier. Par exemple, si notre fichier se nomme tag-booster.php, on affiche les articles du tag avec le slug “booster”.
taxonomy.php
Modèle permettant d’afficher la liste des articles d’une taxonomy.
S’il est inexistant, WordPress utilisera le fichier category.php ou archive.php si category.php n’existe pas.
taxonomy-{tanonomy}.php
Il s’utilise comme le fichier taxonomy.php et il permet d’afficher la liste des articles de la taxonomy indiquée avec la “taxonomy” du fichier. Par exemple, si notre fichier se nomme taxonomy-garage.php, on affiche les articles de la taxonomy avec le slug “garage”.
Pages
page.php
Modèle par défaut pour afficher le contenu d’une page.
page-{slug}.php, page-{id}.php
Modèle pour afficher le contenu de la page qui comporte le “slug” ou l'”id” du fichier.
Article
single.php
Modèle par défaut pour afficher le contenu d’un article.
single-{post-type}
Modèle de page pour afficher le contenu de l’article d’un Custom Post Type. Par exemple, si votre Custom Post Type s’appelle “voiture”, le fichier template doit être single-voiture.php
Média
attachment.php
Modèle pour le fichier attaché à un article ou une page qui peut servir à tous les formats possibles : image, vidéo et son.
{mimetype}.php
Son fonctionnement est le même que celui du fichier attachment.php. Il permet d’afficher la page du média indiqué avec son “mimetype”. Par exemple, si notre fichier se nomme image.php, ce modèle servira à afficher les images d’un article.
Auteurs
author.php
Modèle par défaut pour afficher les articles d’un auteur.
Ce modèle est utilisé pour tous les auteurs.
author-{nicename}.php, author-{id}.php
Modèle pour afficher la liste des articles de l’auteur qui comporte le “nicename” ou l'”id” du fichier.
Autres
search.php
Modèle pour afficher le(s) résultat(s) d’une recherche.
404.php
Modèle de la page 404 (page non trouvée).
Quand WordPress n’accède pas à un article ou à une page, la page 404 est appelée.
comments.php
Modèle des commentaires.
En général, sont affichés la liste des derniers commentaires et le formulaire de soumission. Si le modèle comments.php est absent, WordPress inclura le thème par défaut.
21 Commentaires
Attention aux confusions à propos de la page d’accueil.
D’après le Codex (et plus particulièrement d’après ce schéma), hiérarchiquement home.php est appelé avant index.php.
Dans WordPress index.php sert de “fallback” à tous les autres templates.
Article intéressant à ce sujet : http://blog.designbygray.ca/wordpress-why-you-gotta-be-so-confusing/
tres utiles, merci. Les templates du wordpress est embrouillant quelquefois :3
merci pour c’est mise au point
Ça plus le schéma hiérarchique, on a plus de raisons d’avoir des doutes sur la gestion des fichiers WP
Très bon résumé, merci pour ces informations capitales dans le développement WordPress !
Le schéma est assez clair , ils ont bien fait cela !
vraiment maintenant j’ai compris tous merci beaucoup ^^
Logiquement, votre fichier “index.php” ne devrait jamais servir, sauf lors de la création du thème pour vous apercevoir d’une erreur de catch de template. ;)
@Boiteaweb : Mais pourquoi donc ?
Perso, j’utilise toujours index.php pour la page d’accueil de mes thèmes.
http://codex.wordpress.org/images/1/18/Template_Hierarchy.png
Home est appelé AVANT index, le commentaire du 25/12 le dit, ton premier point de l’article est donc incorrect.
Index.php n’est qu’un fallback si il manque un fichier, donc un thème bien fait n’a pas besoin d’un fallback, il va servir pour une personne qui va modifier le thème et donc servir de debugger, dans l’index tu mets “Vous ne devriez pas lire ça !” ce’st tout :p
Je dis ça et je ne sais pas créer un thème hein, jetez moi la pierre x)
Oui en effet, merci pour les précisions, vous aviez raison toi et WELOVEWEBDESIGN.
J’ai édité l’article avec quelques précisions.
Il est a noter que le thème “officiel” TwentyEleven n’utilise pas home.php, mais bien index.php
:)
Oui, mais la référence reste le codex. TwentyEleven fait mal son taf si j’ose dire.
y a-t il un tuto complet sur la création d’un modéle wordpress
@monsef147: si vous tapez sur google “créer un modèle de page wordpress”, vous allez avoir pas mal de résultats ;)
Bonjour,
j’ai beau cherché sur Google, je ne trouve pas comment faire pour avoir une page qui liste toutes mes catégories sur une page, en mettant une image et une description de celle ci, avez vous un lien ou un tuto?
Merci
@ dreamworld: Désolé, je n’ai pas de tuto de ce genre sous la main.
Bonjour,
Je suis en train de travailler sur un thème wordpress déjà existant “Graphy” de son nom.
Je voudrais savoir s’il y a moyen de mettre une image d’en tete sur chacune des pages. J’ai besoin d’avoir une première page “fixe” qui ne fonctionne pas grâce a des articles mais l’entête ne s’affiche pas dessus…
Pourriez-vous m’aider s’il vous plait ?
Merci !
@Nao: Je ne connais pas votre thème, du coup je ne vais pas pouvoir vous aider.
bonjour,
Merci pour votre site et vos tutos qui m’ont dépanné de nombreuses fois.
Petite question :
Je suis actuellement entrain de créer un site qui possède des templates différents par catégories. Jusque la tout va bien j’utilise category-{id}.php
Mais je voudrais que l’ensemble des articles liés à cette catégorie est le même template que la catégorie en question (j’intègre un fil d’actu propre à chaque catégorie).
Comment modifier le fichier single.php (ou autre) pour arriver à ce résultat ?
Merci
@akro: Vous avez un article détaillé sur le sujet ici : http://www.wpbeginner.com/wp-themes/create-custom-single-post-templates-for-specific-posts-or-sections-in-wordpress/
Super merci pour votre aide et le lien.
Bonne journée