Gerarchia dei Template: dubbi tra index.php, front-page.php, home.php

16 ago 2013, 23:07:05
Visualizzazioni: 90.4K
Voti: 47

Sono davvero confuso tra index.php, home.php e front-page.php. In molti casi anche se avevo un index.php, l'ho sovrascritto con front-page.php. Ma recentemente, sono venuto a conoscenza di home.php.

  • Qual è la differenza tra home.php e index.php?
  • Qual è la condizione ideale per utilizzare home.php invece di index.php?
  • Qual è la condizione ideale per utilizzare front-page.php?
  • Quando uso front-page.php, quale compito specifico svolge allora index.php?

Ho letto la Gerarchia dei Template nel Codex. Per favore non confondere la mia domanda con i Template delle Pagine, quelli li ho capiti, alHamduLILLAH.

1
Commenti

Ho trovato questo link di @rarst: https://www.rarst.net/wordpress/front-page-logic/. Potrebbe esserti utile.

Mayeenul Islam Mayeenul Islam
17 mag 2016 11:19:16
Tutte le risposte alla domanda 6
0
45

La logica della pagina frontale è una delle funzionalità più confuse in WordPress ed è eccezionalmente difficile da spiegare e riassumere. Come menzionato in un commento tempo fa, ho bruciato una quantità sacrilega di tempo per mettere insieme il mio cheat sheet sulla logica della pagina frontale.

Ma dato che questo è un thread popolare, lasciami provare a rispondere a quelle domande molto specifiche che avevi.

Qual è la differenza tra home.php e index.php?

home.php è il template per l'indice degli articoli (archivio del tipo di contenuto nativo Post, che è un caso speciale in WP). WP cercherà di utilizzarlo per l'indice degli articoli, che siano visualizzati alla radice del sito o in una pagina dedicata agli articoli.

index.php è il template universale. È l'ultima scelta in tutti i rami della gerarchia dei template e verrà selezionato quando nient'altro si adatta, sia per le viste di archivio che per quelle singole.

Solo l'indice degli articoli può usare home.php, ma tutti gli altri contesti potrebbero e utilizzeranno index.php.

Qual è la condizione ideale per usare un home.php invece di un index.php?

Usi home.php per personalizzare l'indice degli articoli.

Usi index.php per fornire il template più generico nel tuo tema, adatto alla visualizzazione di qualsiasi cosa.

Alcuni temi scelgono di avere un index.php vuoto e assicurarsi di avere template più specifici per tutti i casi possibili, così che non debba mai essere utilizzato.

Qual è la condizione ideale per usare un front-page.php?

front-page.php viene utilizzato per l'indice degli articoli alla radice o per la pagina frontale statica, se abilitata.

È un template ad alta priorità, quindi se un tema lo include non puoi selezionare un template arbitrario per la pagina frontale statica. Per questo motivo è quasi mai incluso nei temi rilasciati pubblicamente (il che è corretto).

Il miglior utilizzo è in progetti privati, poiché è più facile da configurare rispetto a un template di pagina.

Quando sto usando un front-page.php, allora quale compito specifico svolge per me un index.php?

index.php è ancora un template universale per tutti gli altri casi.

Se usi una pagina frontale statica (a cui si applicherà front-page.php), allora la tua pagina degli articoli cercherà di utilizzare home.php e poi index.php.

26 ago 2016 19:31:21
1
31

Il file front-page.php è il template della pagina iniziale del sito. Verrà sempre utilizzato per la pagina iniziale del tuo sito, indipendentemente dal fatto che get_option( 'show_on_front' ) sia impostato su page o posts.

Il template home.php è il template dell'indice degli articoli del blog. Verrà sempre utilizzato per visualizzare l'indice degli articoli del blog, indipendentemente dal fatto che l'indice sia visualizzato sulla pagina iniziale del sito o su una pagina diversa.

Nel caso in cui esistano sia front-page.php che home.php, e get_option( 'show_on_front' ) sia impostato su posts (ovvero, la pagina iniziale del sito mostra l'indice degli articoli del blog), il file front-page.php avrà la precedenza sul file home.php.

Il file index.php è il template di fallback predefinito per tutti i contesti nella Gerarchia dei Template. Viene utilizzato solo se non esiste un template più specifico per il contesto corrente.

La gerarchia dei template per la pagina iniziale del sito è:

  • front-page.php
  • Se 'page' == get_option( 'show_on_front' ): gerarchia delle pagine
  • Se 'posts' == get_option( 'show_on_front' ): gerarchia dell'indice degli articoli del blog

La gerarchia dei template per l'indice degli articoli del blog è:

  • home.php
  • index.php

La gerarchia dei template per le pagine è:

  • Template personalizzato della pagina
  • page-{slug}.php
  • page-{id}.php
  • page.php
  • index.php
16 ago 2013 23:22:34
Commenti

Quindi, se ho capito bene, non è possibile utilizzare il template my-template-1 quando la pagina iniziale è impostata sugli ultimi articoli e usare my-template-2 quando la pagina iniziale è impostata su una pagina statica (senza scrivere codice)?

Johansson Johansson
30 mag 2017 21:06:18
1
19

Tutto ciò deriva da un'attenta lettura della Gerarchia dei Template.

home.php viene utilizzato se:

  • La pagina iniziale del tuo sito è impostata per visualizzare un elenco di articoli, oppure
  • E il tema ha un file home.php

Se l'ultima condizione non è soddisfatta — cioè, se non esiste un file home.php nel tema — allora verrà caricato index.php.

front-page.php verrà utilizzato se:

Se l'ultima condizione non è soddisfatta — cioè, se non esiste un file front-page.php nel tema — allora verrà caricato index.php.

In sintesi

Se vuoi personalizzare il tuo elenco di articoli, utilizza home.php.
Se vuoi personalizzare la tua pagina statica iniziale, utilizza front-page.php.

16 ago 2013 23:14:23
Commenti

home.php verrà utilizzato per l'indice degli articoli del blog, indipendentemente dalla posizione. Se la pagina iniziale è impostata per visualizzare l'indice degli articoli del blog, allora verrà utilizzato home.php (se front-page.php non esiste).

Chip Bennett Chip Bennett
16 ago 2013 23:25:24
0
12

In breve:

  • index.php è un template di fallback, utilizzato solo quando non viene trovato un template più appropriato
  • home.php viene utilizzato per il blog (un elenco di post recenti)
  • front-page.php viene utilizzato per la landing-page

Il template universale index.php

Il file template index.php è un template di fallback. Viene utilizzato come ultima risorsa quando non è disponibile nessun altro template più appropriato. Ad esempio, se non hai un front-page.php né un home.php, allora verrà utilizzato index.php. Lo stesso vale per i template mancanti come archive.php o single.php e così via.

Differenza tra front-page.php e home.php

La differenza tra i template front-page.php e home.php è che front-page.php viene utilizzato, come suggerisce il nome, come pagina principale del sito, mentre home.php è destinato alla sezione Blog.

Quale template verrà utilizzato per la landing-page del mio sito?

Il template front-page.php, se presente, verrà utilizzato per la pagina principale del sito (es. http://www.example.com/). Se non presente, verrà invece utilizzato home.php. Se mancano entrambi i template front-page.php e home.php, verrà utilizzato il template di fallback index.php.

Quale template verrà utilizzato per la pagina del blog?

WordPress ti consente di avere una pagina "Blog" (che elencherà i post recenti) su una pagina diversa dalla landing-page (es. http://www.example.com/blog/). Quindi, se questo è il caso del tuo sito, la pagina del Blog utilizzerà sempre il template home.php. Se home.php non esiste, verrà utilizzato il template di fallback index.php.

Come configurare la landing-page e la pagina del blog?

Per configurare quale contenuto mostrare sulla tua pagina principale, vai su WordPress Admin, sotto Strumenti > Lettura, lì puoi configurare "La tua home page visualizza" per mostrare una pagina statica o i tuoi ultimi post.

Nel caso tu scelga di visualizzare una pagina statica sulla home page, avrai anche la possibilità di impostare quale pagina utilizzare come segnaposto per la pagina del Blog (che utilizzerà il template home.php):

Configurazione della pagina principale e del blog in WordPress

21 ago 2013 10:18:41
0

tratto da Gerarchia dei template di WordPress

Visualizzazione della Home Page

Per impostazione predefinita, WordPress imposta la home page del tuo sito per visualizzare gli ultimi articoli del blog. Questa pagina è chiamata indice degli articoli. Puoi anche impostare i tuoi articoli del blog per essere visualizzati su una pagina statica separata. Il file template home.php viene utilizzato per visualizzare l'indice degli articoli del blog, sia che venga utilizzato come pagina frontale che su una pagina statica separata. Se home.php non esiste, WordPress utilizzerà index.php.

  1. home.php
  2. index.php

Nota: Se esiste front-page.php, avrà la precedenza sul template home.php.

Visualizzazione della Pagina Frontale

Il file template front-page.php viene utilizzato per visualizzare la pagina frontale del tuo sito, sia che la pagina frontale mostri l'indice degli articoli del blog (menzionato sopra) o una pagina statica. Il template della pagina frontale ha la precedenza sull'indice degli articoli del blog (home.php). Se il file front-page.php non esiste, WordPress utilizzerà home.php o page.php a seconda della configurazione in Impostazioni → Lettura. Se nessuno di questi file esiste, verrà utilizzato il file index.php.

1. front-page.php – Utilizzato sia per "i tuoi ultimi articoli" che per "una pagina statica" come impostato nella sezione di visualizzazione della pagina frontale di Impostazioni → Lettura.

2. home.php – Se WordPress non trova front-page.php e "i tuoi ultimi articoli" è impostato nella sezione di visualizzazione della pagina frontale, cercherà home.php. Inoltre, WordPress cercherà questo file quando la pagina degli articoli è impostata nella sezione di visualizzazione della pagina frontale.

3. page.php – Quando "pagina frontale" è impostata nella sezione di visualizzazione della pagina frontale.

4. index.php – Quando "i tuoi ultimi articoli" è impostato nella sezione di visualizzazione della pagina frontale ma home.php non esiste o quando la pagina frontale è impostata ma page.php non esiste.

Come puoi vedere, ci sono molte regole su quale percorso segue WordPress. Utilizzare il grafico sopra è il modo migliore per determinare cosa verrà visualizzato da WordPress.

Grafico della gerarchia dei template: Gerarchia dei template di WordPress

7 nov 2015 22:39:48
0

Ho deciso di testare quale template viene utilizzato per ognuna delle seguenti pagine quando vengono impostate le diverse opzioni di visualizzazione della pagina iniziale.

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

I risultati sono piuttosto lunghi, ma possono essere utilizzati come riferimento o come cheat-sheet.

Visualizzazioni pagina iniziale

Fonte: In che modo differiscono i template front-page.php e home.php in WordPress?

Nota per l'editor: Ho provato a copiare e incollare le tabelle qui ma è richiesto il formato markdown invece dell'HTML. Per favore converti in markdown se possibile.

25 apr 2017 04:26:27