Formation WordPress

Les templates sur WordPress

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 des conditions spécifiques.

Parmi la quantité des modèles existants, quel fichier de template sera utiliser 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

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

Même fonctionnement 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}

Même fonctionnement que le fichier archive.php. 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

Même fonctionnement que le fichier category.php. 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

Même fonctionnement que le fichier tag.php. 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. Si ce modèle n’existe pas, WordPress utilisera le fichier category.php ou archive.php si category.php n’existe pas.

taxonomy-{tanonomy}.php

Même fonctionnement que le fichier taxonomy.php. Il permet d’afficher la liste des articles de la taxonomy indiqué 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’appel « voiture », le fichier template doit être single-voiture.php

Média

attachment.php

Modèle pour le fichier attaché à un article ou une page. Ce modèle peut servir à tous les formats possibles : image, vidéo et son.

{mimetype}.php

Même fonctionnement que le 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, on y affiche 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.

Tags :
Auteur : Jonathan
Actuellement en Master 1 Information Communication à Ingémédia, je m’intéresse depuis quelques années à différents aspects du milieu informatique qui m’ont vraiment séduits tels que la gestion de projet et la création de sites Internet.
Avatar de jonathan
Les commentaires 12 commentaires sur cet article
  1. welovewebdesign le

    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/

    Avatar de
  2. Johnny le

    tres utiles, merci. Les templates du wordpress est embrouillant quelquefois :3

    Avatar de
  3. géobiologie le

    merci pour c’est mise au point

    Avatar de
  4. Rtransat le

    Ça plus le schéma hiérarchique, on a plus de raisons d’avoir des doutes sur la gestion des fichiers WP

    Avatar de
  5. vallsymachinant le

    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 !

    Avatar de
  6. issam le

    vraiment maintenant j’ai compris tous merci beaucoup ^^

    Avatar de
  7. BoiteAWeb le

    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. ;)

    Avatar de
  8. jonathan le

    @Boiteaweb : Mais pourquoi donc ?

    Perso, j’utilise toujours index.php pour la page d’accueil de mes thèmes.

    Avatar de
  9. BoiteAWeb le

    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)

    Avatar de
  10. jonathan le

    Oui en effet, merci pour les précisions, vous aviez raison toi et WELOVEWEBDESIGN.

    J’ai édité l’article avec quelques précisions.

    Avatar de
  11. krysttof le

    Il est a noter que le thème « officiel » TwentyEleven n’utilise pas home.php, mais bien index.php
    :)

    Avatar de
  12. Julio Potier le

    Oui, mais la référence reste le codex. TwentyEleven fait mal son taf si j’ose dire.

    Avatar de
Laisser un commentaire
Balises autorisées dans les commentaires: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Suivre les commentaires de cet article par E-mail