Hiérarchie des modèles: confondu avec index.php, front-page.php, home.php

36

Je suis vraiment confus avec index.php, home.phpet front-page.php. Dans de nombreux cas, même si j'avais un index.php, je l'écrase avec front-page.php. Mais récemment, j'ai pris conscience de home.php.

  • Quelle est la différence entre le home.phpet index.php?
  • Quelle est la condition idéale pour utiliser un home.phpqu'un index.php?
  • Quelle est la condition idéale pour utiliser un front-page.php?
  • Quand j'utilise un front-page.phpalors quelle tâche spécifique un index.phpfait pour moi alors?

J'ai lu la hiérarchie des modèles dans le Codex. S'il vous plaît ne mélangez pas ma question avec des modèles de page, je les comprends, alHamduLILLAH.

Mayeenul Islam
la source
1
Vous avez @rarst avec ceci: rarst.net/wordpress/front-page-logic . Peut vous aider.
Mayeenul Islam,

Réponses:

34

La logique de la page d'accueil est l'une des fonctionnalités les plus déroutantes de WordPress et est extrêmement difficile à expliquer et à résumer. Comme mentionné dans le commentaire, à mon retour, j’ai pris un temps déraisonnable pour préparer mon aide-mémoire en première page .

Mais comme il s’agit d’un sujet populaire, permettez-moi de tenter de répondre à ces questions très spécifiques.

Quelle est la différence entre le home.phpet index.php?

home.phpest un gabarit pour posts index (archive de type natif post post, ce qui est un cas particulier dans WP). WP essaiera de le rechercher pour l’index des publications, qu’elles soient affichées à la racine du site ou sur la page des publications dédiées.

index.phpest attrape-tout modèle. Il s’agit de choix définitifs dans toutes les branches de la hiérarchie des modèles et sera sélectionné lorsque rien ne conviendra mieux, à la fois pour les archives et les vues uniques.

Seuls les posts index peuvent utiliser home.php, mais tous les autres contextes peuvent et vont utiliser index.php.

Quelle est la condition idéale pour utiliser un home.phpqu'unindex.php

Vous utilisez home.phppour personnaliser l'index des publications.

Vous utilisez index.phppour fournir le modèle le plus générique de votre thème, adapté à l'affichage de n'importe quoi.

Certains thèmes choisissent d'avoir vide index.phpet de s'assurer qu'ils ont des modèles plus spécifiques pour tous les cas possibles, de sorte qu'ils ne doivent jamais être utilisés.

Quelle est la condition idéale pour utiliser un front-page.php?

front-page.php est utilisé pour les publications sur la page d'accueil racine ou statique, si activé.

Il s'agit d'un modèle de priorité élevée. Par conséquent, si thème est proposé, vous ne pouvez pas sélectionner de modèle arbitraire pour une page de garde statique. Pour cette raison, il n’est presque jamais inclus dans les thèmes publiés (ce qui est correct).

La meilleure utilisation est les projets privés, car il est plus facile à configurer que les modèles de page.

Quand j'utilise un front-page.phpalors quelle tâche spécifique un index.phpfait pour moi alors?

index.phpest toujours un modèle attrape tout pour tous les autres cas.

Si vous utilisez une page d'accueil statique (à laquelle front-page.phps'appliquera), votre page de messages tentera de l'utiliser home.php, puis index.php.

Rarst
la source
28

Le front-page.phpfichier est le modèle de page de garde du site . Il sera toujours utilisé sur la page d'accueil de votre site, qu'il get_option( 'show_on_front' )soit défini sur pageou posts.

Le home.phpfichier de modèle est le modèle d' index des articles de blog . Il sera toujours utilisé pour afficher l'index de vos articles de blog, que cet index soit affiché sur la page d'accueil du site ou sur une autre page.

Dans le cas où front-page.phpet home.hppexiste et que l' get_option( 'show_on_front' )option est définie sur posts(c'est- à -dire que la page d'accueil du site affiche l'index des articles de blog), le front-page.phpfichier aura priorité sur le home.phpfichier.

Le index.phpfichier est le modèle de secours par défaut pour tous les contextes de la hiérarchie des modèles . Il n'est utilisé que si un fichier modèle plus spécifique n'existe pas pour le contexte actuel.

La hiérarchie des modèles pour la page d'accueil du site est la suivante:

  • front-page.php
  • Si 'page' == get_option( 'show_on_front' ): hiérarchie des pages
  • Si 'posts' == get_option( 'show_on_front' ): articles de blog hiérarchie d'index

La hiérarchie de modèles pour l' index des articles de blog est la suivante:

  • home.php
  • index.php

La hiérarchie des modèles de pages est la suivante:

  • Modèle de page personnalisé
  • page-{slug}.php
  • page-{id}.php
  • page.php
  • index.php
Chip Bennett
la source
Donc, si je comprends bien, il n'est pas possible d'utiliser un my-template-1modèle lorsque la page de couverture est définie sur les dernières publications et d'utiliser my-template-2lorsque la page de couverture est définie sur une page statique (sans codage)?
Jack Johansson
18

Tout cela provient d'une lecture approfondie de la hiérarchie des modèles .

home.php est utilisé si:

  • La page d'accueil de votre site est configurée pour afficher une liste de publications ou
  • Et le thème a un home.phpfichier

Si la dernière condition n'est pas remplie, c'est-à-dire qu'il n'y a pas de home.phpfichier dans le thème, elle index.phpsera chargée.

front-page.php sera utilisé si:

  • Une page de garde statique est définie et
  • Un visiteur accède à la page que vous avez définie comme étant votre "page d’accueil statique" (c.-à-d. http://example.com/) Et
  • Le thème a un front-page.phpfichier

Si la dernière condition n'est pas remplie, c'est-à-dire qu'il n'y a pas de front-page.phpfichier dans le thème, elle index.phpsera chargée.

En résumé

Si vous souhaitez personnaliser votre liste de publications, utilisez home.php.
Si vous souhaitez personnaliser votre page d'accueil statique, utilisez front-page.php.

Pat J
la source
2
home.phpsera utilisé pour l'index des articles de blog, quel que soit son emplacement. Si la page d'accueil est configurée pour afficher l'index des articles de blog, il home.phpsera utilisé (s'il front-page.phpn'existe pas).
Chip Bennett
10

En bref:

  • index.php est un modèle de secours uniquement, si aucun modèle approprié n'a été trouvé
  • home.php est utilisé pour le blog (une liste de messages récents)
  • front-page.php est utilisé pour la page de destination

Le index.phpgabarit universel

Le index.phpfichier de modèle est un modèle de secours. Il est utilisé en dernier recours lorsqu'aucun autre modèle plus approprié n'est disponible. Par exemple, si vous n'avez pas , front-page.phpni home.phpalors index.phpsera utilisé. Ceci est également vrai pour les manquants archive.phpou single.phpainsi de suite.

Concernant le front-page.phpVShome.php

Maintenant, la différence entre les modèles front-page.phpet home.phpest que front-page.php, comme son nom l'indique, le est utilisé comme page de couverture principale du site, alors qu'il home.phpest destiné à héberger la section Blog .

Quel modèle sera utilisé pour la page de destination de mon site?

Le front-page.phpmodèle, s'il est présent, sera utilisé pour la page d'accueil principale du site (par exemple http://www.example.com/). S'il n'est pas présent, il home.phpsera utilisé à la place. Si les fichiers front-page.phpet les home.phpmodèles sont manquants, le index.phpmodèle de secours sera utilisé.

Quel modèle sera utilisé pour ma page de blog?

WordPress vous permet d’avoir une page "Blog" (qui listera les publications récentes) sur une page différente de celle de la page de destination (par exemple http://www.example.com/blog/). Donc, si tel est le cas sur votre site, la page Blog utilisera toujours le home.phpmodèle. S'il home.phpn'existe pas, le index.phpmodèle de secours sera utilisé.

Comment configurer la page de destination et la page de blog?

Pour configurer le contenu à afficher sur votre page d'accueil, accédez à l' Administrateur WordPress , sous Outils> Lecture , vous pouvez configurer les " Affichages de la page d'accueil " pour afficher une page statique ou vos derniers messages.

Si vous choisissez d'afficher une page statique sur la page d'accueil, vous avez également la possibilité de définir quelle page utiliser comme espace réservé pour la page Blog (qui utilisera le home.phpmodèle):

entrez la description de l'image ici

demandé le 12 février 12
la source
3

tiré de la hiérarchie des modèles Wordpress

Affichage de la page d'accueil

Par défaut, WordPress définit la page d'accueil de votre site pour afficher les derniers articles de votre blog. Cette page s'appelle l'index des articles de blog. Vous pouvez également définir les articles de votre blog pour qu'ils s'affichent sur une page statique distincte. Le fichier de modèle home.php est utilisé pour rendre l'index des articles de blog, qu'il soit utilisé comme page de couverture ou sur une page statique distincte. Si home.php n'existe pas, WordPress utilisera index.php.

  1. home.php
  2. index.php

Remarque: Si front-page.php existe, il remplacera le modèle home.php.

Affichage de la page avant

Le fichier de modèle front-page.php est utilisé pour afficher la page d'accueil de votre site, que cette dernière affiche l'index des articles de blog (mentionné ci-dessus) ou une page statique. Le modèle de page de couverture a priorité sur le modèle d'index des articles de blog (home.php). Si le fichier front-page.php n'existe pas, WordPress utilisera les fichiers home.php ou page.php en fonction de la configuration dans Paramètres → Lecture. Si aucun de ces fichiers n'existe, il utilisera le fichier index.php.

1. front-page.php - Utilisé à la fois pour «vos derniers messages» ou «une page statique», comme défini dans la section des écrans de première page de Paramètres → Lecture.

2. home.php - Si WordPress ne trouve pas front-page.php et que «vos derniers messages» sont définis dans la section des écrans de première page, il recherchera home.php. En outre, WordPress recherchera ce fichier lorsque la page d'articles sera définie dans la section des écrans de première page.

3. page.php - Lorsque “page avant” est défini dans la section des écrans de page d'accueil.

4. index.php - Lorsque “vos derniers messages” est défini dans la section des écrans de page d'accueil mais que home.php n'existe pas ou lorsque la page d'accueil est définie, mais que page.php n'existe pas.

Comme vous pouvez le constater, de nombreuses règles définissent le chemin emprunté par WordPress. Utiliser le tableau ci-dessus est le meilleur moyen de déterminer ce que WordPress affichera.

Diagramme hiérarchique: Hiérarchie des modèles Wordpress

samix73
la source
2

J'ai décidé de tester quel modèle est utilisé pour chacune des pages suivantes lorsque les diverses options d'affichage de page d'accueil sont définies.

  • example.net
  • example.net/home/
  • example.net/blog/

Les résultats sont assez longs, mais peuvent être utilisés comme référence ou aide-mémoire.

Affichages page de garde

Source: En quoi les modèles front-page.php et home.php diffèrent-ils dans WordPress?

Note à l'éditeur: J'ai essayé de copier et coller les tableaux ici, mais le format Markdown est requis au lieu de HTML. S'il vous plaît convertir en démarque si vous le pouvez.

le rédacteur
la source