Gerarchia dei modelli: confusa con index.php, front-page.php, home.php
-
-
Ottenuto @rarst con questo: https://www.rarst.net/wordpress/front-page-logic/.Può aiutarti.Got @rarst with this: https://www.rarst.net/wordpress/front-page-logic/. May help you.
- 1
- 2016-05-17
- Mayeenul Islam
-
6 risposta
- voti
-
- 2016-08-26
La logica dellaprimapagina è una delle caratteristichepiù confusein WordPressed èeccezionalmente difficile da spiegaree riassumere. Come accennatonel commentomentretornavo,ho sprecatotempopermettereinsiemeilmio trucco di logica dellaprimapaginafoglio peresso.
Mapoiché questo è unthreadpopolare,lasciamiprovare a rispondere a quelle domandemolto specifiche che avevi.
Qual è la differenzatra
home.php
eindex.php
?home.php
è unmodelloper l'indice deipost (archivio deltipo dipostnativo,che è un caso specialein WP). WPtenterà di cercare l'indice deipost,sia che siano visualizzatinella radice del sito onellapagina deipost dedicati.index.php
è unmodello catch-all. Sono le sceltefinaliin tuttii rami dellagerarchia deimodellie verranno scelte quandonient'altro si adatta,siapergli archivi cheper le viste singole.Solo l'indice deipostpuò utilizzare
home.php
,ma tutti gli altri contestipotrebberoe userannoindex.php
.Qual è la condizioneidealeper utilizzare un
home.php
piuttosto che unindex.php
Utilizzi
home.php
perpersonalizzare l'indice deipost.Utilizzi
index.php
perfornireilmodellopiùgenericoneltuotema,adattoper la visualizzazione di qualsiasi cosa.Alcunitemi scelgono di avere
index.php
vuotoe si assicurano che abbianomodellipiù specificipertuttii casipossibili,quindinon devemaiessere utilizzato.Qual è la condizioneidealeper utilizzare un
front-page.php
?front-page.php
viene utilizzatoper l'indice deipostnellapaginaprincipale o statica,se abilitata.È unmodello ad altapriorità,quindi seiltema lo hanon èpossibile selezionare unmodello arbitrarioper laprimapagina statica. Per questomotivonon è quasimaiinclusonei temipubblicatipubblicamente (il che è corretto).
L'utilizzomigliore ènei progettiprivati,poiché èpiùfacile da configurare rispetto almodello dipagina.
Quando utilizzo un
front-page.php
,allora quale attività specifica unindex.php
stafacendoperme?index.php
è ancora unmodello catch allpertuttigli altri casi.Se utilizzi laprimapagina statica (alla quale verrà applicato
front-page.php
),latuapagina deipostproverà a utilizzarehome.php
e quindiindex.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
Ilfile
front-page.php
èilmodello della primapagina del sito . Verrà sempre utilizzato sullaprimapagina deltuo sito,indipendentemente dalfatto cheget_option ('show_on_front')
siaimpostato supage
oposts
.Ilfile dimodello
home.php
èilmodello di indice deipost delblog . Verrà sempre utilizzatoper visualizzare l'indice deipost delblog,indipendentemente dalfatto che l'indice deipost delblog sia visualizzato sullaprimapagina del sito o su unapagina diversa.Nel casoin cuiesistano sia
front-page.php
chehome.hpp
e l'opzioneget_option ('show_on_front')
siaimpostata aposts
(cioè,laprimapagina del sitomostra l'indice deipost delblog),ilfilefront-page.php
avrà laprecedenza suhome.php file.
Ilfile
index.php
èil modello difallbackpredefinito pertuttii contestinella Gerarchia deimodelli . Viene utilizzato solo senonesiste unfilemodellopiù specificoperil contesto corrente.Lagerarchia deimodelliper la primapagina del sito è:
front-page.php
- If
'page'==get_option ('show_on_front')
:gerarchia dipagine - If
'posts'==get_option ('show_on_front')
:gerarchia dell'indice deipost delblog
Lagerarchia deimodelliper l 'indice deipost delblog è:
home.php
index.php
Lagerarchia deimodelliper pagine è:
- Modello dipaginapersonalizzato
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
-
Quindi,se ho capitobene,non èpossibile utilizzareilmodello "my-template-1" quando laprimapagina èimpostata sugli ultimiposte utilizzare "my-template-2" quando laparte anteriore èimpostata su unapagina statica(senza codifica)?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
Tutto questo deriva da una lettura approfondita della Gerarchia deimodelli .
home.php
viene utilizzato se:- Laprimapagina deltuo sito èimpostataper visualizzare unelenco dipost oppure
- Vieneimpostata unaprimapagina statica e
- Un visitatore accede allapagina che hai definito come "elenco dipost" (ades.
http://example.com/blog/
)
- Eiltema ha unfile
home.php
Se l'ultima condizionenon è soddisfatta,ovveronon èpresente alcunfile
home.php
neltema,verrà caricatoindex.php
./p>
front-page.php
verrà utilizzato se:- Vieneimpostata unaprimapagina statica e
- Un visitatore accede allapagina che hai definito come "homepage statica" (ades.
http://example.com/
)e - Iltema ha unfile
front-page.php
Se l'ultima condizionenon è soddisfatta,ovveronon c'è unfile
front-page.php
neltema,verrà caricatoindex.php
.In sintesi
Se desideripersonalizzareiltuoelenco dipost,utilizza
home.php
.
Se vuoipersonalizzare latua homepage statica,usafront-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` verrà utilizzatoper l'indice deipost delblog,indipendentemente dallaposizione.Se laprimapagina èimpostataper visualizzare l'indice deipost delblog,verrà usato "home.php" (se "front-page.php"nonesiste).`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
Inbreve:
-
index.php
è solo unmodello di riserva,nel casoin cuinon sia statotrovato alcunmodello appropriato -
home.php
viene utilizzatoperilblog (unelenco dipost recenti) -
front-page.php
viene utilizzatoper lapagina di destinazione
Ilmodello
index.php
universaleIlfile delmodello
index.php
è unmodello di riserva. Viene utilizzato come ultima risorsa quandonon è disponibile un altromodellopiù appropriato. Adesempio,senon hai unfront-page.php
né unhome.php
,verrà utilizzatoindex.php
. Questo vale ancheperarchive.php
osingle.php
mancantie così via.Riguardo a
front-page.php
VShome.php
Ora la differenzatrai modelli
front-page.php
ehome.php
è che viene utilizzatofront-page.php
,comeil suonome suggerisce,come laprimapaginaprincipale del sito,mentrehome.php
vuoleessere la homepage della sezione Blog .Qualemodello verrà utilizzatoper lapagina di destinazione delmio sito?
Ilmodello
front-page.php
,sepresente,verrà utilizzatoper laprimapaginaprincipale del sito (adesempiohttp://www.example.com/
) . Senon èpresente,verràinvece utilizzatohome.php
. Semancanoentrambii file dimodellofront-page.php
ehome.php
,verrà utilizzatoilmodello difallbackindex.php
.Qualemodello verrà utilizzatoper lamiapagina delblog?
WordPressti consente di avere unapagina "Blog" (cheelencherài post recenti) su una pagina diversa rispetto allapagina di destinazione (ades.
http://www.example.com/blog/
). Quindi,se questo èil caso deltuo sito,lapagina delblog utilizzerà sempreilmodellohome.php
. Sehome.php
nonesiste,verrà utilizzatoilmodello difallbackindex.php
.Come configurare lapagina di destinazionee lapagina delblog?
Per configurare quale contenutomostrare sullatuapaginaprincipale,vai su WordPress Admin ,in Strumenti> Lettura ,lìpuoi configurare la "primapagina visualizza "permostrare unapagina statica oi tuoi ultimipost.
Nel casoin cui si scelga di visualizzare unapagina staticain primapagina,si ha anche lapossibilità diimpostare qualepagina utilizzare come segnapostoper lapagina delblog (che utilizzeràil
home.php modello):
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
tratto dalla Gerarchia deimodelli di Wordpress
Visualizzazione della homepage
Perimpostazionepredefinita,WordPressimposta la homepage deltuo sitoper visualizzareiltuo ultimipost delblog. Questapagina è chiamataindice deipost delblog. Puoi imposta anchei post deltuoblogin modo che vengano visualizzati su unapagina statica separata. Il Ilfilemodello home.php viene utilizzatopereseguireil rendering dell'indice deipost delblog,sia viene utilizzato comeprimapagina o su unapagina statica separata. Se home.phpnonesiste,WordPress utilizzeràindex.php.
- home.php
- index.php
Nota: seesistefront-page.php,sovrascriveràilmodello home.php.
Visualizzazionein primapagina
Ilfilemodellofront-page.php viene utilizzatoper visualizzare laparte anteriore deltuo sito pagina,se laprimapaginamostra l'indice deipost delblog (menzionato sopra) o unapagina statica. Ilmodello dellaprimapagina ha laprecedenza ilmodello diindice deipost delblog (home.php). Seilfilefront-page.php nonesiste,WordPress utilizzerà home.php opage.php file a seconda della configurazionein Impostazioni → Lettura. Senessuno dei due queifileesistono,useràilfileindex.php.
1.front-page.php - Utilizzato siaper "ituoi ultimipost" o "unapagina statica" comeimpostatonellaprimapaginamostra la sezione Impostazioni → Lettura.
2. home.php - Se WordPressnon riesce atrovarefront-page.phpe "your latest post "èimpostatonella sezione dei display dellaprimapagina,cercherà home.php. Inoltre,WordPress cercherà questofile quandoil lapagina deipost èimpostatanella sezione di visualizzazione dellaprimapagina.
3.page.php - Quando "Frontpage" èimpostatonella sezione display dellaprimapagina.
4.index.php - Quando "ituoi ultimipost" èimpostatonellaprimapagina,viene visualizzata la sezionema home.phpnonesiste o quando èimpostata laprimapaginamapage.php sì nonesiste.
Comepuoi vedere,ci sonomolte regoleper qualepercorso WordPressprende. Usareilgrafico sopra èilmodomiglioreper determinare cosamostrerà WordPress.
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
Ho deciso ditestare qualemodello viene utilizzatoper ciascuna delle seguentipagine quando sonoimpostate le varie opzioni di visualizzazione dellapaginainiziale.
- esempio.net
- esempio.net/home/
- example.net/blog/
I risultati sonopiuttosto lunghi,mapossonoessere usati come riferimento o cheat-sheet.
Fonte: In chemodoi modellifront-page.phpe home.php differisconoin WordPress?
Notaper l'editore: hoprovato a copiaree incollare letabelle quima è richiestoilformatomarkdown anziché HTML.Convertiin markdown sepuoi.
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.
Sono davvero confuso con
index.php
,home.php
efront-page.php
.Inmolti casi,anche se avevo unindex.php
,lo sovrascrivo confront-page.php
.Ma recentemente sono venuto a conoscenza dihome.php
.home.php
eindex.php
?home.php
piuttosto che unindex.php
?front-page.php
?front-page.php
,allora quale attività specifica unindex.php
stafacendoperme?Ho letto la Gerarchia deimodelli nel Codex.Perfavore,nonmescolare lamia domanda coni modelli dipagina,li capisco,alHamduLILLAH.