WordPress Template page pour page accueil

repost : http://webcache.googleusercontent.com/search?q=cache:qdPiNOzAF2AJ:www.webforgr.org/2013/quel-fichier-template-afficher-page-daccueil-wordpress

WordPress est une fantastique solution pour une grande variété de projets. Pour certains, cela reste un moteur de blog parce que WordPress utilise le terme article ou post pour gérer un contenu classé chronologiquement. Pour d’autres, il sert de moteur de site vitrine/dynamique.

Note l’auteur : article initialement publié début septembre puis re-publié le 26/09/2013, après relecture, et ajout de + d’explications sur certains points.

Lorsque vous créez/concevez/développez un thème à partir de zéro pour la première fois, certains fichiers modèles nécessaires à cette création peuvent sembler quelque peu déroutants. Quelques-uns font sens comme le template page.php pour vos pages. Mais il y a une page – celle que tous visiteurs peuvent voir en premier en arrivant sur un site – qui semble faire débat. La page permettant d’afficher le contenu en page d’accueil.

Il semble exister une réelle confusion pour afficher/charger le « bon » modèle de page d’accueil.

Quel est le fichier template le plus approprié pour afficher la page d’accueil de mon site propulsé par WordPress ?

De prime abord, le template de la page d’accueil semble être index.php. Logique. Quand on construit un site, on ajoute une page index.html ou index.php et c’est là que l’on écrit, appelle et affiche le contenu destiné à se trouver en page d’accueil ou homepage.

On peut aussi créer le template nommé home.php, et là on se dit que cela ressemble à homepage ou accueil. Mais examinons de plus près le Codex de WordPress, et passons au crible chacun des fichiers template pour comprendre leur utilisation réelle.

fichiers template index.php

Le fichier template index.php n’est pas utilisé pour la page d’accueil de votre site.

“Display a list of posts in excerpt or full-length form. Choose one or the other as appropriate.” WordPress Codex Index (index.php) Template

Que l’on peut traduire par : « Afficher la liste des messages en extrait ou complet. Choisissez l’un ou l’autre selon les besoins. »
…et c’est tout. Il n’y est pas question de page d’accueil.

Contrairement à la norme index.html telle que nous la connaissons dans la construction de nos sites statiques, index.php a semble-t-il une signification totalement différente dans WordPress.

De plus, le Codex fr ajoute :

« À l’exception du fichier modèle de base index.php qui doit être présent dans tout thème, les développeurs de thème sont libres de choisir s’ils veulent ou non implémenter ou non tel ou tel fichier modèle. Si WordPress ne trouve pas le premier fichier attendu pour le type de page dans la liste, il passe au fichier suivant de la hiérarchie. En dernier lieu, si aucun fichier n’a été trouvé, c’est le fichier index.php qui sera utilisé. »

Il précise également :

« En fonction de ce qu’il doit afficher, WordPress regarde dans le répertoire du thème et utilise le premier fichier template qu’il trouve »

Nous pouvons en déduire que : index.php constitue pour WordPress le fichier par défaut pour tout. Une page est demandée, WordPress va passer en revue tous les fichiers du thème ; s’il ne trouve pas, il prend ce qui reste, à savoir le fameux fichier index.php. Cela peut entrainer une augmentation du temps de chargement de la page car chaque template va être interrogé, selon la hiérarchie des templates.

En conclusion, on ne devrait pas utiliser index.php comme page d’accueil. Retournons lire le Codex et examinons à présent le fichier template home.php.

fichiers template home.php

WordPress vérifie d’abord l’existence d’une page d’accueil statique. Si une page d’accueil a été définie, alors WordPress charge alors ce modèle de page, selon la hiérarchie du modèle de page.

Si aucune page d’accueil statique n’a été définie, alors WordPress se met en quête d’un fichier template appelé home.php et afin de générer la page demandée.

Si home.php est absent, WordPress cherche un fichier nommé index.php dans le répertoire du thème actif et l’utilise pour générer la page.

Par exemple, si votre blog est à l’adresse ‘http’://’example’.com/wordpress/ et qu’un visiteur charge la page ‘http’://’example’.com/wordpress/ WordPress cherche un fichier template appelé home.php et l’utilise pour générer le modèle de page non statique. Si home.php n’existe pas, WordPress recherche un fichier appelé index.php dans le répertoire du thème et l’utilise alors pour générer le modèle de page.

WordPress cherche un fichier template appelé archive.php et l’utilise pour le modèle de page qui classe les articles par dates, ou par catégories. Si archive.php n’existe pas, WordPress recherche un fichier appelé index.php dans le répertoire du thème et l’utilise alors pour générer le modèle de page qui classe les articles par dates, ou par catégories.

WordPress cherche un fichier template appelé single.php et l’utilise pour générer le modèle de page qui contient un article. Si single.php n’existe pas, WordPress recherche un fichier appelé index.php dans le répertoire du thème et l’utilise alors pour générer le modèle de page qui contient un article.

WordPress cherche un fichier template appelé (ce-que-vous-voulez).php et l’utilise pour générer le modèle de page qui contient un ce-que-vous-voulez. Si (ce-que-vous-voulez).php n’existe pas, WordPress recherche un fichier appelé index.php dans le répertoire du thème et l’utilise alors pour générer le modèle de page qui contient (ce-que-vous-voulez).

Donc le fichier index.php est le fichier template joker à tout faire, mais qui doit servir le moins.

Les commentaires écrits dans certains thèmes, dans le fichier index.php, confirme :

This is the default template. It is used when a more specific template can’t be found to display posts. It is unlikely that this template will ever be used, but there may be rare cases.

…que l’on peut traduire par « C’est le modèle par défaut. Il est utilisé quand un modèle plus spécifique ne peut être trouvé pour afficher les articles. Il est peu probable que ce modèle sera utilisé, mais il peut y avoir des cas rares. »

On peut déduire que WordPress utilise home.php pour charger une page affichant du contenu que l’utilisateur/rédacteur a rédigé, dans une page publiée, via l’interface d’administration, et qu’il a défini comme page d’accueil.

fichiers template front-page.php

Terminons avec le fichier template front-page.php qui n’existe dans presque aucun thème. Le fichier template front-page.php est le modèle de page ou template de la page d’accueil statique.

Il est utilisé uniquement lorsque vous définissez une page statique comme votre page d’accueil dans Réglages > Lecture.

Pour autant, cela ne signifie pas que vous ne pouvez pas avoir de contenu dynamique ; cela signifie juste que vous aurez à utiliser front-page.php

Au final, WordPress « veut » avant tout le fichier template front-page.php en premier. S’il ne le trouve pas. Il va charger page.php ou soit charger home.php (s’il existe) ou il va charger la page contenant les articles récents avec le modèle home.php. En dernier recours, s’il ne trouve rien, il charge index.php.

…et vous lecteur utilisez-vous le template front-page.php ?

Concrètement ?

Dans l’interface d’administration, onglet Réglages, Options de lecture :

Le formulaire demande à l’utilisateur ceci :

La page d’accueil affiche

« Les derniers articles »

« Une page statique (choisir ci-dessous) »
>Page d’accueil : choisir parmi la liste de pages existants
>Page des articles : choisir parmi la liste d’articles existants

Il faut comprendre comme étant faire le lien avec le fichier template du thème :

La page d’accueil est chargé par

« Les derniers articles » : home.php

« Une page statique (choisir ci-dessous) » : front-page.php
>Page d’accueil : choisir parmi la liste de pages existants
>Page des articles : choisir parmi la liste d’articles existants

Conclusion, si vous créez/concevez/développez/modifiez/adaptez un thème WordPress ou si vous créez/concevez/développez un site/blog propulsé par WordPress, ou si vous modifiez/adaptez un thème WordPress et que vous avez besoin d’une vraie page d’accueil adaptée et optimisée, alors pensez au fichier template front-page.php.

Ce fichier template front-page.php, une fois adapté, permet d’afficher à la fois du contenu statique (dans le temps), dynamique car modifiable grâce à l’interface d’administration, et pour en même temps vos derniers articles récents publiés.

Un thème/site peut utiliser les deux fichiers template. Le front-page.php pour la page d’accueil, et la page home.php pour la page du blog du site.

Et en vrai ?

Mise à jour 26/09/2013, en réponse sur un sujet du forum de WordPress France.
Avoir la page d’accueil avec les derniers articles et un texte d’intro

Le résumé de ma réponse :
« Donc, le fichier template front-page.php est utile pour afficher à la fois du contenu (votre texte d’intro) statique et dynamique car modifiable grâce à l’interface d’administration, et pour afficher à coté vos derniers articles récents publiés. »

« L’idée est de reprendre le contenu de index.php pour ne pas le réécrire. puis d’ajouter une deuxième boucle / loop WordPress. »

« la première boucle va afficher le contenu écrit dans l’admin, contenu provenant d’une page que l’on a sélectionné dans Réglages, Options de lecture « Page d’accueil : choisir parmi la liste de pages existants ». donc choisir accueil
(après avoir créer une page nommé accueil et ajout un petit texte d’intro et publiée) »

« la deuxième boucle va afficher les derniers articles parus publiés, en dessous du contenu écrit dans la page accueil. »

Testé et approuvé sur thème Ascetica de Theme Hybrid.

Source :

site Codex WordPress : Templates « WordPress Codex

site Codex WordPress français : fr:Hiérarchie des fichiers modèles « WordPress Codex

article GeekPress : blog consacré à WordPress Templates WordPress

article : Design by Gray – Blog : WordPress, Why You Gotta Be So Confusing?

site : wphierarchy The WordPress Template Hierarchy

Remerciement

Merci à LV pour ses conseils et la relecture de cet article, re-mis à jour, en ce 26 septembre.
Merci à CreativeJuiz

5 thoughts on “Quel fichier template pour afficher la page d’accueil de mon site web WordPress ?

  1. Hello,
    Merci à toi pour ces explications, c’est vrai que la distinction entre ces différents fichiers n’est pas toujours aisée :)

    Pour aller plus loin dans une généralité, j’ai cru comprendre qu’il fallait donc toujours essayer de cibler les templates le plus à gauche possible de ce schéma : http://codex.wordpress.org/File:Template_Hierarchy.png puisque WordPress, à l’interrogation d’un type de page fait une recherche de la présence des templates en commençant par la gauche. Plus vite il trouve, mieux c’est.
    index.php étant le fichier de secours en quelque sorte.

    Bonne continuation.


  2. À remarquer que les thèmes premium proposent de plus en plus des pages d’accueil à personnaliser à l’aide de blocs et préfèrent donc un template de page.

    Une autre remarque en passant: sous Firefox, le titre de ce billet mange une partie de la sidebar…



    • Ewen says:


      Bonjour, il est possible que certain thèmes premium utilisent un template de page, mais pour moi, ils s’éloignent des bonnes pratiques vu sur le Codex et l’usage du front-page.php pour la page accueil, et le home.php pour la page accueil type blog. « …WordPress, à l’interrogation d’un type de page fait une recherche de la présence des templates en commençant par la gauche. Plus vite il trouve, mieux c’est. » comme l’a bien résumé @Geoffrey, ces deux fichiers templates ont l’avantage de s’afficher + vite, qu’un autre template de page.

      A ce propos, savez-vous quel est le nom de fichier .php que les thèmes premium utilisent pour générer la page d’accueil ?

      Merci. Effectivement, en 1280px, les titres des articles s’affichent par dessus la sidebar. Je corrige.