Jeg er virkelig forvirret med index.php
, home.php
og front-page.php
. I mange tilfeller, selv om jeg hadde en index.php
, Jeg overskriver den med front-page.php
. Men nylig ble jeg klar over home.php
.
- Hva «er forskjellen mellom
home.php
ogindex.php
? - Hva er den ideelle tilstanden for å bruke en
home.php
enn enindex.php
? - Hva er den ideelle tilstanden for å bruke en
front-page.php
? - Når jeg bruker en
front-page.php
, hvilken spesifikk oppgave enindex.php
gjør for meg da?
Jeg har lest Malhierarki i Codex. Ikke bland spørsmålet mitt med sidemaler. Jeg forstår dem, alHamduLILLAH.
Kommentarer
- Fikk @rarst med dette: rarst.net/wordpress/front-page-logic . Kan hjelpe deg.
Svar
Forsides logikk er en av de mest forvirrende funksjonene i WordPress og er eksepsjonelt vanskelig å forklare og oppsummere. Som nevnt i kommentaren mens jeg var tilbake, brente jeg uhellig tid til å sette sammen forsiden logisk jukseark for det.
Men siden dette er en populær tråd, la meg prøve å svare på de helt spesifikke spørsmålene du hadde.
Hva er forskjellen mellom
home.php
ogindex.php
?
home.php
er mal for innleggsindeks (arkiv av innfødt innleggstype, som er et spesielt tilfelle i WP). WP vil prøve å slå opp for indeks over innlegg, enten de vises på roten av nettstedet eller på dedikerte innleggssider. / p>
index.php
er fangst-alt-mal. Det er endelige valg i alle grener av malhierarkiet og vil bli plukket når ingenting annet passer, for både arkiver og entallvisninger.
Bare innleggsindeksen kan bruke home.php
, men alle andre sammenhenger kan og vil bruke index.php
.
Hva er den ideelle tilstanden for å bruke en
home.php
enn enindex.php
Du bruker home.php
for å tilpasse innleggsindeksen.
Du bruker index.php
for å gi den mest generiske malen i temaet ditt, og som passer til visning av hva som helst.
Noen temaer velger å ha tom index.php
og sørge for at de har mer spesifikke maler for alle mulige tilfeller, så det trenger aldri å brukes.
Hva «er den ideelle forutsetningen for å bruke en
front-page.php
?
front-page.php
brukes til innleggsindeks på roten eller den statiske forsiden, hvis aktivert.
Det er en mal med høy prioritet, så hvis temaet har det, kan du ikke velge vilkårlig mal for den statiske forsiden. Av den grunn er det nesten aldri inkludert i offentlig frigitte temaer (som er riktig).
Den beste bruken for det er i private prosjekter, siden det er lettere å konfigurere enn sidemal.
Når jeg bruker en
front-page.php
så hvilken spesifikk oppgave enindex.php
gjør for meg da?
index.php
er fortsatt en fangst-mal for alle andre tilfeller.
Hvis du bruker statisk forside (som front-page.php
gjelder for), vil innleggssiden din prøve å bruke home.php
og deretter index.php
.
Svar
front-page.php
filen er nettstedets forside mal. Det vil alltid brukes på forsiden av nettstedet ditt, uavhengig av om get_option( "show_on_front" )
er satt til page
eller posts
.
home.php
malfilen er blogginnleggsindeks mal. Den vil alltid bli brukt til å vise indeksene for blogginnleggene dine, uavhengig av om blogginnleggsindeksen vises på nettstedets forside eller på en annen side.
I tilfelle at begge front-page.php
og home.hpp
eksisterer, og get_option( "show_on_front" )
er satt til posts
(dvs. at nettstedets forside viser blogginnleggsindeksen), vil front-page.php
-filen gå foran home.php
-filen.
index.php
-filen er standard reservemal for alle sammenhenger i Malhierarki . Den brukes bare noen gang hvis en mer spesifikk malfil ikke eksisterer for den gjeldende konteksten.
Malhierarkiet for nettstedets forside er:
-
front-page.php
- Hvis
"page" == get_option( "show_on_front" )
: sidehierarki - Hvis
"posts" == get_option( "show_on_front" )
: blogginnlegg indekshierarki
Malhierarkiet for blogginnlegg indeks er:
-
home.php
-
index.php
Malhierarkiet for sider er:
- Tilpasset sidemal
-
page-{slug}.php
-
page-{id}.php
-
page.php
-
index.php
Kommentarer
- Så hvis jeg ‘ får dette riktig, ‘ sn det er ikke mulig å bruke
my-template-1
mal når forsiden er satt til siste innlegg og brukemy-template-2
når forsiden er satt til en statisk side ( uten koding)?
Svar
Alt dette kommer fra en grundig lesing av Malhierarki .
home.php
brukes hvis:
- Nettstedet ditt forsiden er satt til å vise en liste over innlegg, eller
- En statisk forside er angitt , og
- A besøkende går til siden du har definert som «innleggslisten» (f.eks.
http://example.com/blog/
)
- Og temaet har en
home.php
-fil
Hvis den siste betingelsen ikke er oppfylt – dvs. at det ikke er home.php
-filen i temaet – så lastes index.php
.
front-page.php
:
- En statisk front p alder er satt , og
- En besøkende går til siden du har definert som din «statiske startside» (dvs.
http://example.com/
) , og - Temaet har en
front-page.php
-fil
Hvis den siste betingelsen ikke oppfylles – dvs. der er ingen front-page.php
-fil i temaet – så lastes index.php
.
Oppsummert
Hvis du vil tilpasse listen over innlegg, bruk home.php
.
Hvis du vil tilpasse den statiske hjemmesiden din, bruk front-page.php
.
Kommentarer
-
home.php
vil bli brukt til blogginnleggsindeksen, uansett plassering. Hvis forsiden er satt til å vise indeksen for blogginnlegg, vilhome.php
bli brukt (hvisfront-page.php
ikke eksisterer).
Svar
Kort sagt:
-
index.php
er bare en reservemal, i tilfelle ingen passende mal ble funnet -
home.php
brukes til bloggen (en liste over nylige innlegg) -
front-page.php
brukes til destinasjonssiden
Den universelle index.php
malen
index.php
malfilen er en reservemal. Den brukes som en siste utvei når ingen andre mer passende mal er tilgjengelig. Hvis du for eksempel ikke har front-page.php
eller home.php
, vil index.php
brukes. Dette gjelder også for manglende archive.php
eller single.php
og så videre.
Angående front-page.php
VS home.php
Nå er forskjellen mellom front-page.php
og home.php
maler er at front-page.php
brukes, som navnet antyder, som hovedsiden på nettstedet, mens home.php
er ment å være hjemmet til Blogg -seksjonen.
Hvilken mal vil være brukt til siden min landingsside?
front-page.php
-malen, hvis den er tilstede, vil bli brukt til nettstedets hovedside (f.eks. http://www.example.com/
). Hvis den ikke er tilstede, vil home.php
brukes i stedet. Hvis både front-page.php
og malfiler mangler, så vil index.php
reservemal bli brukt.
Hvilken mal vil bli brukt til bloggsiden min?
WordPress lar deg ha en «Blog» -side (som vil vise nylige innlegg) på en annen side enn destinasjonssiden (f.eks. http://www.example.com/blog/
).Så hvis dette er tilfelle på nettstedet ditt, vil bloggsiden alltid bruke home.php
-malen. Hvis home.php
ikke eksisterer, vil index.php
reservemalen brukes.
Slik konfigurerer du landings- side og bloggside?
For å konfigurere hvilket innhold som skal vises på forsiden din, gå til WordPress-administrator , under Verktøy> Lesing , der kan du konfigurere « Forsiden vises » til vis en statisk side eller de siste innleggene dine.
Hvis du velger å vise en statisk side på forsiden, har du også muligheten til å angi hvilken side du vil bruke som plassholder for bloggen side (som bruker home.php
malen):
Svar
hentet fra WordPress malhierarki
Startsidevisning
Som standard setter WordPress nettstedets hjemmeside til å vise de siste blogginnleggene dine. Denne siden kalles blogginnleggsindeksen. Du kan også angi at blogginnleggene skal vises på en egen statisk side. Malfilen home.php brukes til å gjengi indeksene for blogginnlegg, enten den brukes som forsiden eller på en separat statisk side. Hvis home.php ikke eksisterer, bruker WordPress index.php.
- home.php
- index.php
Merk: Hvis front-page.php eksisterer, vil den overstyre home.php-malen.
Visning av forsiden
Forsiden.php malfilen brukes til å gjengi nettstedets forside, enten forsiden viser blogginnleggsindeksen (nevnt ovenfor) eller en statisk side. Forsidemalen har forrang for indeksmalen for blogginnlegg (home.php). Hvis front-page.php-filen ikke eksisterer, vil WordPress enten bruke home.php- eller page.php-filene, avhengig av oppsettet i Innstillinger → Lesing. Hvis ingen av disse filene eksisterer, vil den bruke index.php-filen.
1. front-page.php – Brukes for både «dine siste innlegg» eller «en statisk side» som angitt på forsiden, viser delen av Innstillinger → Lesing.
2. home.php – Hvis WordPress ikke finner front-page.php og «dine siste innlegg» er angitt i forsideens visningsdel, vil den se etter home.php. I tillegg vil WordPress se etter denne filen når innleggssiden er angitt i seksjonen på forsiden.
3. page.php – Når «forsiden» er angitt på forsiden, vises seksjonen.
4. index.php – Når “dine siste innlegg” er angitt på forsiden, vises delen, men home.php eksisterer ikke, eller når forsiden er angitt, men page.php ikke eksisterer .
Som du kan se, er det mange regler for hvilken vei WordPress tar. Å bruke diagrammet ovenfor er den beste måten å finne ut hva WordPress vil vise.
Svar
Jeg bestemte meg for å teste hvilken mal som brukes for hver av de følgende sidene når de forskjellige forside viser alternativer er angitt.
- eksempel.net
- eksempel.net/home/
- eksempel.net/blog/
Resultatene er ganske lange, men kan brukes som referanse eller jukseark.
Kilde: Hvordan gjør malene på front-page.php og home.php er forskjellige i WordPress?
Merknad til redaktøren: Jeg prøvde å kopiere og lime inn tabellene her, men markdown-format kreves i stedet for HTML. Konverter til markdown hvis du kan.