Jeg er virkelig forvirret med index.php
, home.php
og front-page.php
. I mange tilfælde, selvom jeg havde en index.php
, Jeg overskriver det med front-page.php
. Men for nylig blev jeg opmærksom på home.php
.
- Hvad “er forskellen mellem
home.php
ogindex.php
? - Hvad er den ideelle betingelse for at bruge en
home.php
end enindex.php
? - Hvad er den ideelle betingelse for at bruge en
front-page.php
? - Når jeg bruger en
front-page.php
hvilken specifik opgave gør enindex.php
for mig så?
Jeg har læst Skabelonhierarki i Codex. Bland ikke mit spørgsmål med sideskabeloner, jeg forstår dem, alHamduLILLAH.
Kommentarer
- Fik @rarst med dette: rarst.net/wordpress/front-page-logic . Kan hjælpe dig.
Svar
Forsides logik er en af de mest forvirrende funktioner i WordPress og er usædvanligt svært at forklare og opsummere. Som nævnt i kommentaren, mens jeg var tilbage, brændte jeg uhellig tid til at sammensætte mit forsides logiske snydeark til det.
Men siden dette er en populær tråd, lad mig prøve at besvare de meget specifikke spørgsmål, du havde.
Hvad er forskellen mellem
home.php
ogindex.php
?
home.php
er skabelon til indlæg til indlæg (arkiv med indfødt indlægstype, hvilket er et særligt tilfælde i WP). WP vil forsøge at finde det efter indeks over indlæg, uanset om de vises ved roden af webstedet eller på siden med dedikerede indlæg.
index.php
er fangst-alt-skabelon. Det er endelige valg i alle grene af skabelonhierarkiet og vælges, når intet andet passer til både arkiver og entalvisninger.
Kun indlæg med indlæg kan bruge home.php
, men alle andre sammenhænge kan og vil bruge index.php
.
Hvad er den ideelle betingelse for at bruge en
home.php
end enindex.php
Du bruger home.php
til at tilpasse indlægsindeks.
Du bruger index.php
til at give den mest generiske skabelon i dit tema, der er velegnet til visning af alt.
Nogle temaer vælger at have tom index.php
og sikre, at de har mere specifikke skabeloner til alle mulige tilfælde, så det behøver aldrig at blive brugt.
Hvad “er den ideelle betingelse for at bruge en
front-page.php
?
front-page.php
bruges til indlæg med indlæg på rod- eller statisk forside, hvis det er aktiveret.
Det er en skabelon med høj prioritet, så hvis temaet har det, kan du ikke vælge vilkårlig skabelon til statisk forside. Af denne grund er det næsten aldrig inkluderet i offentligt frigivne temaer (hvilket er korrekt).
Den bedste anvendelse til det er i private projekter, da det er lettere at konfigurere end sideskabelon.
Når jeg bruger en
front-page.php
hvilken specifik opgave enindex.php
gør for mig så?
index.php
er stadig en fangst-alt-skabelon i alle andre tilfælde.
Hvis du bruger statisk forside (som front-page.php
gælder for), vil din indlægsside prøve at bruge home.php
og derefter index.php
.
Svar
front-page.php
filen er webstedsforsiden . Det vil altid blive brugt på dit websteds forside, uanset om get_option( "show_on_front" )
er indstillet til page
eller posts
.
home.php
skabelonfilen er blogindlæg skabelon. Det bruges altid til at vise dit blogindlægs indeks, uanset om blogindlægsindekset vises på webstedets forside eller på en anden side.
I tilfælde af at begge front-page.php
og home.hpp
findes, og get_option( "show_on_front" )
er indstillet til posts
(dvs. webstedsforsiden viser blogindlægsindekset), front-page.php
-filen har forrang for home.php
-filen.
index.php
-filen er standard fallback-skabelon til alle sammenhænge i Skabelonhierarki . Det bruges kun nogensinde, hvis der ikke findes en mere specifik skabelonfil til den aktuelle kontekst.
Skabelonhierarkiet for webstedsforsiden er:
-
front-page.php
- Hvis
"page" == get_option( "show_on_front" )
: sidehierarki - Hvis
"posts" == get_option( "show_on_front" )
: blogindlæg indekshierarki
Skabelonhierarkiet for blogindlæg indeks er:
-
home.php
-
index.php
Skabelonhierarkiet for sider er:
- Tilpasset sideskabelon
-
page-{slug}.php
-
page-{id}.php
-
page.php
-
index.php
Kommentarer
- Så hvis jeg ‘ får dette til rette, så ‘ sn det er ikke muligt at bruge skabelonen
my-template-1
, når forsiden er indstillet til de seneste indlæg og brugemy-template-2
, når fronten er indstillet til en statisk side ( uden kodning)?
Svar
Alt dette kommer fra en grundig læsning af Skabelonhierarki .
home.php
bruges, hvis:
- Dit websted” s forsiden er indstillet til at vise en liste over indlæg, eller
- En statisk forside er indstillet , og
- A besøgende går til den side, som du “har defineret som din” liste over indlæg “(f.eks.
http://example.com/blog/
)
- Og tema har en
home.php
-fil
Hvis den sidste betingelse ikke er opfyldt – dvs. der er ingen home.php
-fil i temaet – så indlæses index.php
.
front-page.php
vil blive brugt :
- En statisk front p alder er indstillet , og
- En besøgende går til den side, som du har defineret som din “statiske startside” (dvs.
http://example.com/
) , og - Temaet har en
front-page.php
-fil
Hvis den sidste betingelse ikke er opfyldt – dvs. der er ingen front-page.php
fil i temaet – så indlæses index.php
.
Sammenfattende
Hvis du vil tilpasse din liste over indlæg, skal du bruge home.php
.
Hvis du vil tilpasse din statiske startside, skal du bruge front-page.php
.
Kommentarer
-
home.php
vil blive brugt til blogindlægsindekset, uanset Beliggenhed. Hvis forsiden er indstillet til at vise blogindlægsindekset, anvendeshome.php
(hvisfront-page.php
ikke findes).
Svar
Kort sagt:
-
index.php
er kun en reserveskabelon, hvis der ikke blev fundet nogen passende skabelon -
home.php
bruges til bloggen (en liste over de seneste indlæg) -
front-page.php
bruges til destinationssiden
Den universelle index.php
skabelon
index.php
skabelonfilen er en reserveskabelon. Det bruges som en sidste udvej, når ingen anden mere passende skabelon er tilgængelig. Hvis du f.eks. Ikke har en front-page.php
eller en home.php
, vil index.php
bruges. Dette gælder også for manglende archive.php
eller single.php
og så videre.
Med hensyn til front-page.php
VS home.php
Nu er forskellen mellem front-page.php
og home.php
skabeloner er, at front-page.php
bruges, som navnet antyder, som websteds hovedforside, mens home.php
er beregnet til at være hjemmet til sektionen Blog .
Hvilken skabelon vil være brugt til mit websteds landingsside?
front-page.php
-skabelonen, hvis den er til stede, vil blive brugt til webstedets hovedforside (f.eks. http://www.example.com/
). Hvis den ikke er til stede, bruges home.php
i stedet. Hvis både front-page.php
og skabelonfiler mangler, så anvendes index.php
reserveskabelon.
Hvilken skabelon vil blive brugt til min blogside?
WordPress giver dig mulighed for at have en “Blog” -side (som viser nylige indlæg) på en anden side end destinationssiden (f.eks. http://www.example.com/blog/
).Så hvis dette er tilfældet på dit websted, bruger blogsiden altid skabelonen home.php
. Hvis home.php
ikke findes, bruges index.php
reserveskabelon.
Sådan konfigureres landings- side og blogside?
For at konfigurere hvilket indhold der skal vises på din forside, skal du gå til WordPress-administrator , under Værktøjer> Læsning , der kan du konfigurere “ Forside vises ” til vis en statisk side eller dine seneste indlæg.
Hvis du vælger at vise en statisk side på forsiden, har du også muligheden for at indstille, hvilken side der skal bruges som pladsholder for bloggen side (som bruger skabelonen home.php
):
Svar
taget fra WordPress-skabelonhierarki
Startsidevisning
Som standard indstiller WordPress dit websteds startside til at vise dine seneste blogindlæg. Denne side kaldes indlæg for blogindlæg. Du kan også indstille dine blogindlæg til at blive vist på en separat statisk side. Skabelonfilen home.php bruges til at gengive blogindlægsindekset, uanset om det bruges som forsiden eller på en separat statisk side. Hvis home.php ikke findes, bruger WordPress index.php.
- home.php
- index.php
Bemærk: Hvis front-page.php findes, tilsidesætter den home.php-skabelonen.
Visning af forsiden
Front-page.php-skabelonfilen bruges til at gengive dit websteds forside, uanset om forsiden viser blogindlægsindekset (nævnt ovenfor) eller en statisk side. Forsideskabelonen har forrang over blogindlægsindeks (home.php) skabelon. Hvis forsiden.php-filen ikke findes, bruger WordPress enten home.php- eller page.php-filerne afhængigt af opsætningen i Indstillinger → Læsning. Hvis ingen af disse filer findes, bruger den index.php-filen.
1. front-page.php – Bruges til både “dine seneste indlæg” eller “en statisk side” som angivet på forsiden viser sektion af Indstillinger → Læsning.
2. home.php – Hvis WordPress ikke kan finde front-page.php og “dine seneste indlæg” er indstillet i afsnittet om forsiden, ser det efter home.php. Derudover vil WordPress se efter denne fil, når indlægssiden er indstillet i afsnittet om forsiden.
3. page.php – Når “forsiden” er indstillet på forsiden, vises sektionen.
4. index.php – Når “dine seneste indlæg” er indstillet på forsiden, vises sektionen, men home.php findes ikke, eller når forsiden er indstillet, men page.php findes ikke .
Som du kan se, er der mange regler for, hvilken vej WordPress tager. Brug af diagrammet ovenfor er den bedste måde at bestemme, hvad WordPress vil vise.
Svar
Jeg besluttede at teste hvilken skabelon der bruges til hver af de følgende sider, når de forskellige forside viser muligheder er indstillet.
- eksempel.net
- eksempel.net/home/
- eksempel.net/blog/
Resultaterne er ret lange, men kan bruges som reference eller snydeark.
Kilde: Hvordan gør front-page.php og home.php skabeloner adskiller sig i WordPress?
Bemærk til editor: Jeg forsøgte at kopiere og indsætte tabellerne her, men markdown-format kræves i stedet for HTML. Konverter til markdown, hvis du kan.