web-dev-qa-db-fra.com

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

Je suis vraiment confus avec index.php, home.php et 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 appris l'existence de home.php.

  • Quelle est la différence entre le home.php et le index.php?
  • Quelle est la condition idéale pour utiliser un home.php qu'un index.php?
  • Quelle est la condition idéale pour utiliser un front-page.php?
  • Lorsque j'utilise un front-page.php, quelle tâche spécifique un index.php est-il en train de faire pour moi?

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

32
Mayeenul Islam

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 en retour, j’ai pris un temps déraisonnable pour rassembler ma feuille de triche logique en première page pour cela.

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

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

home.php est un modèle pour les publications index (archive du type de publication natif, ce qui est un cas particulier dans WP). WP tentera de rechercher l'index des publications, qu'elles soient affichées à la racine du site ou sur la page des publications dédiées.

index.php est un modèle fourre-tout. Il s’agit de choix finaux 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 index de publications peuvent utiliser home.php, mais all d'autres contextes pourraient et utiliseront index.php.

Quelle est la condition idéale pour utiliser un home.php qu'un index.php

Vous utilisez home.php pour personnaliser l'index des publications.

Vous utilisez index.php pour 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 index.php vide et s'assurent 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 dans 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.

Lorsque j'utilise un front-page.php, quelle tâche spécifique un index.php est-il en train de faire pour moi?

index.php est still un modèle capturant pour tous les autres cas.

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

30
Rarst

Le fichier front-page.php est le modèle page de couverture du site. Il sera toujours utilisé sur la page d'accueil de votre site, que get_option( 'show_on_front' ) soit défini sur page ou posts.

Le fichier modèle home.php est le modèle 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 les cas où front-page.php et home.hpp existent, et que get_option( 'show_on_front' ) est défini sur posts (c'est-à-dire que la page d'accueil du site affiche l'index des articles de blog), le fichier front-page.php a priorité sur le fichier home.php.

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

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

  • front-page.php
  • Si 'page' == get_option( 'show_on_front' ): hiérarchie de pages
  • Si 'posts' == get_option( 'show_on_front' ): hiérarchie des publications sur le blog

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

  • home.php
  • index.php

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

  • Modèle de page personnalisé
  • page-{slug}.php
  • page-{id}.php
  • page.php
  • index.php
25
Chip Bennett

Tout cela provient d'une lecture approfondie de 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 fichier home.php

Si la dernière condition n'est pas remplie - c'est-à-dire qu'il n'y a pas de fichier home.php dans le thème - alors index.php sera chargé.

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 fichier front-page.php

Si la dernière condition n'est pas remplie - c'est-à-dire qu'il n'y a pas de fichier front-page.php dans le thème - alors index.php sera chargé.

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.

18
Pat J

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 modèle index.php universel

Le fichier de modèle index.php 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 ni front-page.php ni home.php, alors index.php sera utilisé. Ceci est également vrai pour les manquants archive.php ou single.php et ainsi de suite.

À propos de front-page.php VS home.php

Maintenant, la différence entre les modèles front-page.php et home.php réside dans le fait que le front-page.php est utilisé, comme son nom l’indique, comme page de couverture principale du site, alors que home.php est destiné à héberger la section Blog .

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

Le modèle front-page.php, s'il est présent, sera utilisé pour la page de couverture principale du site (par exemple, http://www.example.com/). Si non présent, alors home.php sera utilisé à la place. Si les fichiers de modèle front-page.php et home.php sont manquants, le modèle de remplacement index.php 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 un page différente que 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 modèle home.php. Si home.php n'existe pas, le modèle de remplacement index.php 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 à Administrateur WordPress , sous Outils> Lecture , vous pouvez configurer le " Affichages page d'accueil " pour afficher un affichage statique. page, 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 modèle home.php):

enter image description here

10
asked Feb 12 '12

tiré de hiérarchie de 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 afficher 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 de couverture 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 parvient pas à trouver front-page.php et que "vos derniers messages" est défini 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 page de garde 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 des modèles:  Wordpress template hierarchy 

3
samix73

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.

 Front page displays 

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.

2
henrywright