Sono davvero confuso con index.php
, home.php
e front-page.php
. In molti casi anche se avevo un index.php
, Lho sovrascritto con front-page.php
. Ma recentemente sono venuto a conoscenza di home.php
.
- Cosa “è la differenza tra
home.php
eindex.php
? - Qual è la condizione ideale per utilizzare un
home.php
di unindex.php
? - Qual è la condizione ideale per utilizzare un
front-page.php
? - Quando “utilizzo un
front-page.php
, quale attività specifica unindex.php
sta facendo per me allora?
Ho letto la Gerarchia dei modelli nel Codex. Per favore non mescolare la mia domanda con i modelli di pagina, ho capito “em, alHamduLILLAH.
Commenti
- Ho ricevuto @rarst con questo: rarst.net/wordpress/front-page-logic . Può aiutarti.
Risposta
La logica della prima pagina è una delle funzionalità più confuse in WordPress ed è eccezionalmente difficile da spiegare e riassumere. Come accennato nel commento mentre tornavo, ho sprecato tempo per mettere insieme il mio cheat sheet sulla logica della prima pagina per questo.
Ma dal momento che questo è un thread popolare, lasciami provare a rispondere a quelle domande molto specifiche che avevi.
Qual “è la differenza tra
home.php
eindex.php
?
home.php
è modello per lindice dei post (archivio del tipo di post nativo, che è un caso speciale in WP). WP tenterà di cercarlo per lindice dei post, sia che siano visualizzati nella radice del sito o nella pagina dei post dedicati.
index.php
è un modello generico. È una scelta finale in tutti i rami della gerarchia dei modelli e verrà scelto quando nientaltro si adatta, sia per gli archivi che per le viste singolari.
Solo lindice dei post può utilizzare home.php
, ma tutti gli altri contesti potrebbero e useranno index.php
.
Qual è la condizione ideale per utilizzare un
home.php
piuttosto che unindex.php
Utilizza home.php
per personalizzare lindice dei post.
Utilizzi index.php
per fornire il modello più generico nel tuo tema, adatto per la visualizzazione di qualsiasi cosa.
Alcuni temi scelgono di avere index.php
e assicurati che dispongano di modelli più specifici per tutti i casi possibili, in modo che non debba mai essere utilizzato.
Cosa “è la condizione ideale per utilizzare un
front-page.php
?
front-page.php
viene utilizzato per lindice dei post nella pagina principale o statica, se abilitata.
È un modello ad alta priorità, quindi se il tema lo ha non è possibile selezionare un modello arbitrario per la prima pagina statica. Per questo motivo non è quasi mai incluso nei temi rilasciati pubblicamente (il che è corretto).
Il suo utilizzo migliore è nei progetti privati, poiché è più facile da configurare rispetto al modello di pagina.
Quando “utilizzo un
front-page.php
, quale specifica attività è unindex.php
sta facendo per me allora?
index.php
è ancora un modello catch all per tutti gli altri casi.
Se utilizzi la pagina iniziale statica (alla quale verrà applicato front-page.php
), la pagina dei post proverà a utilizzare home.php
e quindi index.php
.
Risposta
Il front-page.php
file è il modello prima pagina del sito . Verrà sempre utilizzato sulla prima pagina del tuo sito, indipendentemente dal fatto che get_option( "show_on_front" )
sia impostato su page
o posts
.
Il file modello home.php
è il indice dei post del blog modello. Verrà sempre utilizzato per visualizzare lindice dei post del blog, indipendentemente dal fatto che lindice dei post del blog sia visualizzato sulla prima pagina del sito o su una pagina diversa.
Nel caso in cui sia front-page.php
e home.hpp
esistono e get_option( "show_on_front" )
è impostato su posts
(ovvero, la prima pagina del sito mostra lindice dei post del blog), il file front-page.php
avrà la precedenza sul file home.php
.
Il file index.php
è il modello di riserva predefinito per tutti i contesti nella gerarchia di modelli . Viene utilizzato solo se non esiste un file modello più specifico per il contesto corrente.
La gerarchia dei modelli per la prima pagina del sito è:
-
front-page.php
- If
"page" == get_option( "show_on_front" )
: gerarchia della pagina - If
"posts" == get_option( "show_on_front" )
: gerarchia dellindice dei post del blog
La gerarchia del modello per Lindice dei post del blog è:
-
home.php
-
index.php
La gerarchia del modello per pagine è:
- Modello di pagina personalizzato
-
page-{slug}.php
-
page-{id}.php
-
page.php
-
index.php
Commenti
Risposta
Tutto questo deriva da una lettura approfondita del Gerarchia modelli .
home.php
viene utilizzato se:
- Il tuo sito” s la prima pagina è impostata per visualizzare un elenco di post oppure
- Viene impostata una prima pagina statica e
- A il visitatore va alla pagina che hai definito come tuo “elenco di post” (ad es.
http://example.com/blog/
)
- E il il tema ha un
home.php
file
Se lultima condizione non è “t soddisfatta, cioè non cè home.php
file nel tema: verrà caricato index.php
.
front-page.php
verrà utilizzato se :
- Un fronte statico letà è impostata e
- Un visitatore va alla pagina che hai definito come “home page statica” (ad esempio,
http://example.com/
) e - Il tema ha un
front-page.php
file
Se lultima condizione non è “t soddisfatta, cioè non è presente alcun file front-page.php
nel tema, quindi index.php
verrà caricato.
In sintesi
Se desideri personalizzare il tuo elenco di post, utilizza home.php
.
Se desideri personalizzare la tua home page statica, utilizza front-page.php
.
Commenti
-
home.php
verrà utilizzato per lindice dei post del blog, indipendentemente da Posizione. Se la prima pagina è impostata per visualizzare lindice dei post del blog, verrà utilizzatohome.php
(sefront-page.php
non esiste).
Risposta
In breve:
-
index.php
è solo un modello di riserva, nel caso in cui non sia stato trovato alcun modello appropriato -
home.php
viene utilizzato per il blog (un elenco di post recenti) -
front-page.php
viene utilizzato per la pagina di destinazione
Il modello index.php
universale
Il file modello index.php
è un modello di riserva. Viene utilizzato come ultima risorsa quando non è disponibile un altro modello più appropriato. Ad esempio, se non hai un front-page.php
né un home.php
, index.php
lo farà essere utilizzato. Ciò vale anche per archive.php
o single.php
e così via.
Riguardo a front-page.php
VS home.php
Ora la differenza tra front-page.php
e home.php
modelli è che il front-page.php
viene utilizzato, come suggerisce il nome, come la prima pagina principale del sito, mentre home.php
vuole essere la sede della sezione Blog .
Quale modello sarà utilizzato per la pagina di destinazione del mio sito?
Il modello front-page.php
, se presente, verrà utilizzato per la prima pagina principale del sito (ad es. http://www.example.com/
). Se non è presente, verrà utilizzato home.php
. Se sia front-page.php
e file modello mancano, quindi verrà utilizzato il index.php
modello di riserva.
Quale modello verrà utilizzato per la pagina del mio blog?
WordPress ti consente di avere una pagina “Blog” (che elencherà i post recenti) su una pagina diversa rispetto alla pagina di destinazione (ad es. http://www.example.com/blog/
).Quindi, se questo è il caso del tuo sito, la pagina del blog utilizzerà sempre il modello home.php
. Se home.php
non esiste, verrà utilizzato il index.php
modello di riserva.
Come configurare latterraggio- pagina e pagina del blog?
Per configurare quale contenuto mostrare sulla tua pagina principale, vai all WordPress Admin , in Strumenti> Lettura , puoi configurare “ Visualizzazione della prima pagina ” per mostrare una pagina statica, oi tuoi ultimi post.
Nel caso in cui scegli di visualizzare una pagina statica in prima pagina, hai anche la possibilità di impostare quale pagina utilizzare come segnaposto per il Blog pagina (che utilizzerà il modello home.php
):
Risposta
tratto da Gerarchia dei modelli di WordPress
Visualizzazione pagina iniziale
Per impostazione predefinita, WordPress imposta la home page del tuo sito per visualizzare i tuoi ultimi post sul blog. Questa pagina è chiamata indice dei post del blog. Puoi anche impostare i post del tuo blog in modo che vengano visualizzati su una pagina statica separata. Il file modello home.php viene utilizzato per eseguire il rendering dellindice dei post del blog, sia che venga utilizzato come prima pagina o in una pagina statica separata. Se home.php non esiste, WordPress utilizzerà index.php.
- home.php
- index.php
Nota: se esiste front-page.php, sovrascriverà il modello home.php.
Visualizzazione in prima pagina
Il file modello front-page.php viene utilizzato per visualizzare la prima pagina del tuo sito, sia che la prima pagina visualizzi lindice dei post del blog (menzionato sopra) o una pagina statica. Il modello della prima pagina ha la precedenza sul modello dellindice dei post del blog (home.php). Se il file front-page.php non esiste, WordPress utilizzerà i file home.php o page.php a seconda dellimpostazione in Impostazioni → Lettura. Se nessuno di questi file esiste, utilizzerà il file index.php.
1. front-page.php – Utilizzato sia per “i tuoi ultimi post” o “una pagina statica” come impostato nella sezione di visualizzazione della prima pagina di Impostazioni → Lettura.
2. home.php – Se WordPress non riesce a trovare front-page.php e “i tuoi ultimi post” è impostato nella sezione di visualizzazione della prima pagina, cercherà home.php. Inoltre, WordPress cercherà questo file quando la pagina dei post è impostata nella sezione di visualizzazione della prima pagina.
3. page.php – Quando “front page” è impostato nella sezione di visualizzazione della prima pagina.
4. index.php – Quando “i tuoi ultimi post” è impostato nella prima pagina visualizza la sezione ma home.php non esiste o quando è impostata la prima pagina ma page.php non esiste .
Come puoi vedere, ci sono molte regole sul percorso intrapreso da WordPress. Utilizzare il grafico sopra è il modo migliore per determinare cosa visualizzerà WordPress.
Risposta
Ho deciso di provare quale modello viene utilizzato per ciascuna delle seguenti pagine quando sono impostate le varie opzioni di visualizzazione della pagina iniziale.
- example.net
- example.net/home/
- example.net/blog/
I risultati sono piuttosto lunghi, ma possono essere usati come riferimento o cheat-sheet.
Fonte: Come funziona I modelli front-page.php e home.php differiscono in WordPress?
Nota per leditore: Ho provato a copiare e incollare le tabelle qui ma è richiesto il formato markdown anziché HTML. Converti in markdown se puoi.
my-template-1
quando la prima pagina è impostata sugli ultimi post e utilizzaremy-template-2
quando la parte anteriore è impostata su una pagina statica ( senza codifica)?