Hiérarchie des modèles: confondue avec index.php, front-page.php, home.php
-
-
Got @rarst avec ceci: https://www.rarst.net/wordpress/front-page-logic/.Peut vous aider.Got @rarst with this: https://www.rarst.net/wordpress/front-page-logic/. May help you.
- 1
- 2016-05-17
- Mayeenul Islam
-
6 réponses
- votes
-
- 2016-08-26
La logique de lapremièrepageest l'une desfonctionnalités lesplus déroutantes de WordPresset estexceptionnellement difficile àexpliqueret à résumer. Commementionné dans le commentaire àmon retour,j'ai dépensé untempsimpie pour assemblerma triche logique de lapage d'accueilfeuille pour cela.
Mais commeil s'agit d'unfil de discussionpopulaire,permettez-moi d'essayer de répondre à vos questionstrès spécifiques.
Quelleest la différenceentre
home.php
etindex.php
?home.php
est unmodèlepour l'index des articles (archive detype depublicationnative,ce quiest un casparticulier dans WP). WPtentera de le rechercherpour l'index des articles,qu'ils soient affichés à la racine du site ou sur lapage des articles dédiée.index.php
est unmodèlefourre-tout. Ce sont des choixfinaux danstoutes lesbranches de la hiérarchie desmodèleset seront choisis quand rien d'autrene convient,à lafoispour les archiveset les vues singulières.Seul l'index des articlespeut utiliser
home.php
,mais tous les autres contextespeuvent utiliseret utiliserontindex.php
.Quelleest la conditionidéalepour utiliser un
home.php
plutôt qu'unindex.php
Vous utilisez
home.php
pourpersonnaliser l'index des articles.Vous utilisez
index.php
pourfournir lemodèle leplusgénérique de votrethème,adapté à l'affichage detout.Certainsthèmes choisissent d'avoir un
index.php
videet s'assurent qu'ils ont desmodèlesplus spécifiquespourtous les caspossibles,afin qu'ilne soitjamaisnécessaire de l'utiliser.Quelleest la conditionidéalepour utiliser une
front-page.php
?front-page.php
est utilisépour l'index des articles à la racine ou sur lapage d'accueil statique,si activé.C'est unmodèle de hautepriorité,donc si lethème l'a,vousne pouvezpas sélectionner unmodèle arbitrairepour lapage d'accueil statique. Pour cette raison,iln'estpresquejamaisinclus dans lesthèmespubliéspubliquement (ce quiest correct).
Lameilleure utilisationest dans lesprojetsprivés,carilestplusfacile à configurer qu'unmodèle depage.
Lorsquej'utilise un
front-page.php
,quelletâche spécifique unindex.php
fait-il alorspourmoi?index.php
est toujours unmodèlefourre-toutpourtous les autres cas.Si vous utilisez unepage d'accueil statique (à laquelle
front-page.php
s'appliquera),votrepage demessagesessaiera d'utiliserhome.php
puisindex.php
.Front page logic is one of the most confusing features in WordPress and is exceptionally hard to explain and summarize. As mentioned in comment while back I burnt unholy amount of time to put together my front page logic cheat sheet for it.
But since this is a popular thread let me try to answer those very specific questions you had.
What's the difference between the
home.php
andindex.php
?home.php
is template for posts index (archive of native Post post type, which is a special case in WP). WP will attempt to look it up for index of posts, whether they are displayed at the root of the site or at dedicated posts page.index.php
is catch–all template. It is final choices in all branches of template hierarchy and will be picked when nothing else fits, for both archives and singular views.Only posts index can use
home.php
, but all other contexts might and will useindex.php
.What's the ideal condition to use a
home.php
than anindex.php
You use
home.php
to customize posts index.You use
index.php
to provide the most generic template in your theme, suitable for display of anything.Some themes choose to have empty
index.php
and ensure they have more specific templates for all possible cases, so it never has to be used.What's the ideal condition to use a
front-page.php
?front-page.php
is used for posts index at the root or static front page, if enabled.It is a high priority template, so if theme has it you cannot select arbitrary template for static front page. For this reason it is almost never included in publicly released themes (which is correct).
The best use for it is in private projects, since it's easier to configure than page template.
When I'm using a
front-page.php
then what specific task anindex.php
is doing for me then?index.php
is still a catch all template for all other cases.If you use static front page (to which
front-page.php
will apply) then your posts page will try to usehome.php
and thenindex.php
. -
- 2013-08-16
Lefichier
front-page.php
est lemodèle de page d'accueil du site . Il seratoujours utilisé sur lapage d'accueil de votre site,queget_option( 'show_on_front' )
soit défini surpage
ouposts
.Lefichier demodèle
home.php
est lemodèle d'index des articles deblog . Il seratoujours utilisépour afficher l'index des articles de votreblog,que l'index des articles deblog soit affiché sur lapage d'accueil du site ou sur une autrepage.Dans le cas où
front-page.php
ethome.hpp
existent,et queget_option( 'show_on_front' )
est défini auxposts
(c'est-à-dire que lapage d'accueil du site affiche l'index des articles dublog),lefichierfront-page.php
aurapriorité sur lehome.php
fichier.Lefichier
index.php
est le modèle de secourspar défaut pourtous les contextes de Hiérarchie desmodèles . Iln'est utilisé que si unfichier demodèleplus spécifiquen'existepaspour le contexte actuel.La hiérarchie desmodèlespour la page d'accueil du site est la suivante:
front-page.php
- Si
'page' == get_option( 'show_on_front' )
: hiérarchie despages - Si
'posts' == get_option( 'show_on_front' )
: hiérarchie d'index des articles deblog
La hiérarchie desmodèlespour l 'index des articles deblog est la suivante:
home.php
index.php
La hiérarchie desmodèlespour les pages est la suivante:
- Modèle depagepersonnalisé
page-{slug}.php
page-{id}.php
page.php
index.php
The
front-page.php
file is the site front page template. It will always be used on your site front page, regardless of whetherget_option( 'show_on_front' )
is set topage
orposts
.The
home.php
template file is the blog posts index template. It will always be used to display your blog posts index, regardless of whether the blog posts index is displayed on the site front page, or on a different page.In the case that both
front-page.php
andhome.hpp
exist, and theget_option( 'show_on_front' )
is set toposts
(i.e., the site front page displays the blog posts index), thefront-page.php
file will take precedence over thehome.php
file.The
index.php
file is the default fallback template for all contexts in the Template Hierarchy. It is only ever used if a more-specific template file does not exist for the current context.The template hierarchy for the site front page is:
front-page.php
- If
'page' == get_option( 'show_on_front' )
: page hierarchy - If
'posts' == get_option( 'show_on_front' )
: blog posts index hierarchy
The template hierarchy for the blog posts index is:
home.php
index.php
The template hierarchy for pages is:
- Custom page template
page-{slug}.php
page-{id}.php
page.php
index.php
-
Donc,sije comprendsbien,iln'estpaspossible d'utiliser lemodèle `my-template-1` lorsque lapage d'accueilest définie sur les derniers articleset d'utiliser`my-template-2` lorsque l'avantest défini sur unepage statique(sans codage)?So, if i'm getting this right, it's not possible to use `my-template-1` template when the front page is set to latest posts and use `my-template-2` when the front is set to an static page (without coding) ?
- 0
- 2017-05-30
- Jack Johansson
-
- 2013-08-16
Tout celaprovient d'une lecture approfondie de la hiérarchie desmodèles .
home.php
est utilisé si:- Lapage d'accueil de votre siteest configuréepour afficher une liste depublications,ou
- Unepage d'accueil statiqueest définie ,et
- Un visiteur accède à lapage que vous avez définie comme votre "liste depublications" (parexemple,
http://example.com/blog/
)
- Et lethème a unfichier
home.php
Si la dernière conditionn'estpas remplie - c'est-à-dire qu'iln'y apas defichier
home.php
dans lethème - alorsindex.php
sera chargé./p>
front-page.php
sera utilisé si:- Unepage d'accueil statiqueest définie ,et
- Un visiteur accède à lapage que vous avez définie comme "page d'accueil statique" (c'est-à-dire
http://example.com/
)et - Lethème a unfichier
front-page.php
Si la dernière conditionn'estpas remplie - c'est-à-dire qu'iln'y apas defichier
front-page.php
dans lethème - alorsindex.php
sera chargé .En résumé
Si vous souhaitezpersonnaliser votre liste demessages,utilisez
home.php
.
Si vous souhaitezpersonnaliser votrepage d'accueil statique,utilisezfront-page.php
.All this comes from a thorough reading of the Template Hierarchy.
home.php
is used if:- Your site's front page is set to display a list of posts, or
- A static front page is set, and
- A visitor goes to the page that you've defined as your "list of posts" (eg,
http://example.com/blog/
)
- And the theme has a
home.php
file
If the last condition isn't met -- ie, there is no
home.php
file in the theme -- thenindex.php
will be loaded.front-page.php
will be used if:- A static front page is set, and
- A visitor goes to the page that you've defined as your "static home page" (ie,
http://example.com/
), and - The theme has a
front-page.php
file
If the last condition isn't met -- ie, there is no
front-page.php
file in the theme -- thenindex.php
will be loaded.In summary
If you want to customize your list of posts, use
home.php
.
If you want to customize your static home page, usefront-page.php
.-
`home.php` sera utilisépour l'index des articles deblog,quel que soit leuremplacement.Si lapage d'accueilest configuréepour afficher l'index des articles dublog,alors `home.php` sera utilisé (si`front-page.php`n'existepas).`home.php` will be used for the blog posts index, regardless of location. If the front page is set to display the blog posts index, then `home.php` will be used (if `front-page.php` does not exist).
- 2
- 2013-08-16
- Chip Bennett
-
- 2013-08-21
Enbref:
-
index.php
est unmodèle de secours uniquement,au cas où aucunmodèle approprién’aurait ététrouvé -
home.php
est utilisépour leblog (une liste des articles récents) -
front-page.php
est utilisépour lapage de destination
Lemodèle universel
index.php
Lefichier demodèle
index.php
est unmodèle de secours. Ilest utiliséen dernier recours lorsqu'aucun autremodèleplus approprién'est disponible. Parexemple,si vousn'aveznifront-page.php
nihome.php
,alorsindex.php
sera utilisé. Ceciest également vraipour lesfichiersarchive.php
ousingle.php
manquants,etc.Concernant
front-page.php
VShome.php
Maintenant,la différenceentre lesmodèles
front-page.php
ethome.php
est que lefront-page.php
est utilisé,comme sonnom l'indique,comme lapage d'accueilprincipale du site,tandis quehome.php
est destiné à être lapage d'accueil de la section Blog .Quelmodèle sera utilisépour lapage de destination demon site?
Lemodèle
front-page.php
,s'ilestprésent,sera utilisépour lapage d'accueilprincipale du site (parexemplehttp://www.example.com/
) . S'iln'estpasprésent,alorshome.php
sera utilisé à laplace. Si lesfichiers demodèlefront-page.php
ethome.php
sontmanquants,lemodèle de secoursindex.php
sera utilisé.Quelmodèle sera utilisépourmapage deblog?
WordPress vouspermet d'avoir unepage "Blog" (qui listera les articles récents) sur une page différente que lapage de destination (parexemple
http://www.example.com/blog/
). Donc,sitelest le cas sur votre site,lapage Blog utiliseratoujours lemodèlehome.php
. Sihome.php
n'existepas,lemodèle de secoursindex.php
sera utilisé.Comment configurer lapage de destinationet lapage deblog?
Pour configurer le contenu à afficher sur votrepage d'accueil,accédez à WordPress Admin ,sous Outils> Lecture ,vouspouvez y configurer la " Page d'accueil affiche "pour afficher unepage statique ou vos derniersmessages.
Dans le cas où vous choisissez d'afficher unepage statique sur lapage d'accueil,vous avez également lapossibilité de définir quellepage utiliser commeespace réservépour lapage Blog (qui utilisera le
home.php
modèle):In short:
index.php
is a fallback template only, in case no appropriate template was foundhome.php
is used for the blog (a listing of recent posts)front-page.php
is used for the landing-page
The universal
index.php
templateThe
index.php
template file is a fallback template. It is used as a last resort when no other more appropriate template is available. For example, if you don't have afront-page.php
nor ahome.php
thenindex.php
will be used. This is also true for missingarchive.php
orsingle.php
and so on.Regarding
front-page.php
VShome.php
Now the difference between
front-page.php
andhome.php
templates is that thefront-page.php
is used, as its name suggests, as the main front-page of the site, whilehome.php
is intended to be the home of the Blog section.What template will be used for my site's landing-page?
The
front-page.php
template, if present, will be used for the site's main front page (e.g.http://www.example.com/
). If not present, thenhome.php
will be used instead. If both thefront-page.php
andhome.php
template files are missing then theindex.php
fallback template will be used.What template will be used for my blog page?
WordPress allows you to have a "Blog" page (which will list recent posts) on a different page than the landing-page (e.g.
http://www.example.com/blog/
). So if this is the case on your site, then the Blog page will always use thehome.php
template. Ifhome.php
doesn't exist then theindex.php
fallback template will be used.How to configure the landing-page and blog page?
To configure what content to show on your front page, go to the WordPress Admin, under Tools > Reading, there you can configure the "Front page displays" to show a static page, or your latest posts.
In the case you choose to display a static page on the front page, then you also have the possibility to set which page to use as a placeholder for the Blog page (which will use the
home.php
template): -
- 2015-11-07
extrait de hiérarchie demodèles Wordpress
Affichage de lapage d'accueil
Par défaut,WordPress configure lapage d'accueil de votre sitepour afficher votre derniers articles deblog. Cettepage s'appelle l'index des articles deblog. Vouspouvez définissez également vos articles deblogpour qu'ils s'affichent sur unepage statique distincte. le Lefichiermodèle home.phpest utilisépour afficher l'index des articles deblog,que ilest utilisé commepremièrepage ou sur unepage statique distincte. Si home.phpn'existepas,WordPress utiliseraindex.php.
- home.php
- index.php
Remarque: sifront-page.phpexiste,il remplacera lemodèle home.php.
Affichage de lapremièrepage
Lefichiermodèlefront-page.phpest utilisépour rendre lafaçade de votre site page,si lapage d'accueil affiche l'index des articles dublog (mentionné ci-dessus) ou unepage statique. Lemodèle depage d'accueil apriorité sur lemodèle d'index des articles deblog (home.php). Si lefichierfront-page.php n'existepas,WordPress utilisera soit home.php,soitpage.php fichiersen fonction de la configuration dans Paramètres → Lecture. Si aucun des cesfichiersexistent,il utilisera lefichierindex.php.
1.front-page.php - Utilisépour "vos derniersmessages" ou "unepage statique" tel que défini dans lapage d'accueil affiche la section Paramètres → Lecture.
2. home.php - Si WordPressne trouvepasfront-page.phpet "votre dernier posts »est défini dans la section des affichages de lapage d'accueil,il recherchera home.php. Deplus,WordPress recherchera cefichier lorsque le lapage des articlesest définie dans la section des affichages de lapage d'accueil
3.page.php - Quand «Premièrepage»est défini dans la section des affichages de lapremièrepage.
4.index.php - Lorsque "vos derniersmessages"est défini dans lapremièrepage affiche la sectionmais home.phpn'existepas ou lorsque lapage d'accueilest définiemais quepage.phpexiste n'existepas.
Comme vouspouvez le voir,ilexiste denombreuses règlespour déterminer quel chemin WordPressprend. L'utilisation dutableau ci-dessusest lameilleurefaçon de déterminer ce que WordPress affichera.
taken from Wordpress template hierarchy
Home Page display
By default, WordPress sets your site’s home page to display your latest blog posts. This page is called the blog posts index. You can also set your blog posts to display on a separate static page. The template file home.php is used to render the blog posts index, whether it is being used as the front page or on separate static page. If home.php does not exist, WordPress will use index.php.
- home.php
- index.php
Note: If front-page.php exists, it will override the home.php template.
Front Page display
The front-page.php template file is used to render your site’s front page, whether the front page displays the blog posts index (mentioned above) or a static page. The front page template takes precedence over the blog posts index (home.php) template. If the front-page.php file does not exist, WordPress will either use the home.php or page.php files depending on the setup in Settings → Reading. If neither of those files exist, it will use the index.php file.
1. front-page.php – Used for both “your latest posts” or “a static page” as set in the front page displays section of Settings → Reading.
2. home.php – If WordPress cannot find front-page.php and “your latest posts” is set in the front page displays section, it will look for home.php. Additionally, WordPress will look for this file when the posts page is set in the front page displays section.
3. page.php – When “front page” is set in the front page displays section.
4. index.php – When “your latest posts” is set in the front page displays section but home.php does not exist or when front page is set but page.php does not exist.
As you can see, there are a lot of rules to what path WordPress takes. Using the chart above is the best way to determine what WordPress will display.
-
- 2017-04-25
J'ai décidé detester quelmodèleest utilisépour chacune despages suivantes lorsque les différentes options d'affichage de lapage d'accueil sont définies.
- example.net
- example.net/home/
- example.net/blog/
Les résultats sont assez longs,maispeuvent être utilisés comme référence ou aide-mémoire.
Source: En quoi lesmodèlesfront-page.phpet home.php diffèrent-ils dans WordPress?
Note à l'éditeur: J'aiessayé de copieret coller lestableauxicimais leformatmarkdownest requis au lieu du HTML.Veuillez convertiren démarque si vous lepouvez.
I decided to test which template is used for each of the following pages when the various Front page displays options are set.
- example.net
- example.net/home/
- example.net/blog/
The results are quite long, but can be used as a reference or cheat-sheet.
Source: How do the front-page.php and home.php templates differ in WordPress?
Note to editor: I tried to copy and paste the tables here but markdown format is required instead of HTML. Please convert to markdown if you can.
Je suis vraiment confus avec
index.php
,home.php
etfront-page.php
.Dans denombreux cas,même sij'avais unindex.php
,je l'écraseparfront-page.php
.Mais récemment,j'aipris connaissance dehome.php
.home.php
etindex.php
?home.php
plutôt qu'unindex.php
?front-page.php
?front-page.php
,quelletâche spécifique unindex.php
faitpourmoi alors?J'ai lu la Hiérarchie desmodèles dans Codex.Veuillezne pasmélangerma question avec desmodèles depage,je les comprends,alHamduLILLAH.