Jag är verkligen förvirrad med index.php
, home.php
och front-page.php
. I många fall trots att jag hade en index.php
, Jag skriver över den med front-page.php
. Men nyligen blev jag medveten om home.php
.
- Vad ӊr skillnaden mellan
home.php
ochindex.php
? - Vad är det perfekta villkoret för att använda en
home.php
än enindex.php
? - Vad är det perfekta villkoret för att använda en
front-page.php
? - När jag använder en
front-page.php
vilken specifik uppgift gör enindex.php
för mig då?
Jag har läst Mallhierarki i Codex. Blanda inte min fråga med sidmallar, jag förstår dem, alHamduLILLAH.
Kommentarer
- Fick @rarst med detta: rarst.net/wordpress/front-page-logic . Kan hjälpa dig.
Svar
Logiken på förstasidan är en av de mest förvirrande funktionerna i WordPress och är exceptionellt svårt att förklara och sammanfatta. Som nämnts i kommentaren för tillfället brände jag ohelig tid för att sätta ihop mitt förstasideslogikfuskark för det.
Men eftersom detta är en populär tråd, låt mig försöka svara på de mycket specifika frågorna du hade.
Vad är skillnaden mellan
home.php
ochindex.php
?
home.php
är mall för inläggsindex (arkiv med inhemsk inläggstyp, vilket är ett speciellt fall i WP). WP kommer att försöka leta upp det efter inläggsindex, oavsett om de visas i roten på webbplatsen eller på sidan för dedikerade inlägg.
index.php
är catch-all-mall. Det är slutgiltiga val i alla grenar av mallhierarkin och kommer att väljas när inget annat passar, för både arkiv och singularvyer.
Endast inläggsindex kan använda home.php
, men alla andra sammanhang kan och kommer att använda index.php
.
Vad är det perfekta villkoret för att använda en
home.php
än enindex.php
Du använder home.php
för att anpassa inläggsindex.
Du använder index.php
för att tillhandahålla den mest generiska mallen i ditt tema, lämplig för visning av vad som helst.
Vissa teman väljer att ha tom index.php
och se till att de har mer specifika mallar för alla möjliga fall, så det behöver aldrig användas.
Vad ”är det perfekta villkoret för att använda en
front-page.php
?
front-page.php
används för inläggsindex vid roten eller den statiska förstasidan, om den är aktiverad.
Det är en mall med hög prioritet, så om temat har det kan du inte välja godtycklig mall för statisk förstasida. Av denna anledning ingår det nästan aldrig i offentligt släppta teman (vilket är korrekt).
Den bästa användningen för det är i privata projekt, eftersom det är lättare att konfigurera än sidmall.
När jag använder en
front-page.php
vilken specifik uppgift enindex.php
gör för mig då?
index.php
är fortfarande en fångstmall för alla andra fall.
Om du använder statisk förstasida (som front-page.php
gäller) kommer din inläggssida att försöka använda home.php
och sedan index.php
.
Svar
front-page.php
filen är webbplatsens första sida mall. Den kommer alltid att användas på din webbplats förstasida, oavsett om get_option( "show_on_front" )
är inställt på page
eller posts
.
home.php
mallfilen är blogginläggsindex mall. Den kommer alltid att användas för att visa ditt blogginläggsindex, oavsett om blogginläggsindex visas på webbplatsens förstasida eller på en annan sida.
Om båda front-page.php
och home.hpp
finns, och get_option( "show_on_front" )
är inställd på posts
(dvs. webbplatsens framsida visar blogginläggsindex), front-page.php
-filen har företräde framför home.php
-filen.
index.php
-filen är standard reservmall för alla sammanhang i Mallhierarki . Det används bara om det inte finns en mer specifik mallfil för det aktuella sammanhanget.
Mallhierarkin för webbplatsens första sida är:
-
front-page.php
- Om
"page" == get_option( "show_on_front" )
: sidhierarki - Om
"posts" == get_option( "show_on_front" )
: blogginlägg indexhierarki
Mallhierarkin för blogginläggsindex är:
-
home.php
-
index.php
Mallhierarkin för sidor är:
- Anpassad sidmall
-
page-{slug}.php
-
page-{id}.php
-
page.php
-
index.php
Kommentarer
- Så om jag ’ får det rätt, så ’ sn det är inte möjligt att använda
my-template-1
mall när förstasidan är inställd på senaste inlägg och användamy-template-2
när fronten är inställd på en statisk sida ( utan kodning??
Svar
Allt detta kommer från en grundlig läsning av Mallhierarki .
home.php
används om:
- Din webbplats” s förstasidan är inställd på att visa en lista med inlägg, eller
- En statisk framsida är inställd och
- A besökaren går till sidan som du har definierat som din ”lista över inlägg” (t.ex.
http://example.com/blog/
)
- Och temat har en
home.php
-fil
Om det sista villkoret inte uppfylls – dvs. det finns ingen home.php
-fil i temat – då laddas index.php
.
front-page.php
:
- En statisk front p ålder är inställd och
- En besökare går till sidan som du har definierat som din ”statiska hemsida” (dvs.
http://example.com/
) , och - Temat har en
front-page.php
-fil
Om det sista villkoret inte uppfylls – dvs där är ingen front-page.php
-fil i temat – då laddas index.php
.
Sammanfattningsvis
Om du vill anpassa din lista över inlägg använder du home.php
.
Om du vill anpassa din statiska hemsida använder du front-page.php
.
Kommentarer
-
home.php
kommer att användas för blogginläggsindex, oavsett plats. Om förstasidan är inställd på att visa blogginläggsindex kommerhome.php
att användas (omfront-page.php
inte finns).
Svar
Kort sagt:
-
index.php
är endast en reservmall, om ingen lämplig mall hittades -
home.php
används för bloggen (en lista över senaste inlägg) -
front-page.php
används för målsidan
Den universella index.php
-mallen
Mallfilen index.php
är en reservmall. Det används som en sista utväg när ingen annan lämplig mall finns tillgänglig. Om du till exempel inte har front-page.php
eller home.php
kommer index.php
används. Detta gäller också för att sakna archive.php
eller single.php
och så vidare.
När det gäller front-page.php
VS home.php
Nu är skillnaden mellan front-page.php
och home.php
mallar är att front-page.php
används, som namnet antyder, som webbplatsens huvudsida, medan home.php
är tänkt att vara hem för Blogg avsnitt.
Vilken mall kommer att vara används för min webbplats ”målsida?
front-page.php
-mallen, om den finns, kommer att användas för webbplatsens huvudsida (t.ex. http://www.example.com/
). Om det inte finns, används home.php
istället. Om både front-page.php
och mallfiler saknas då kommer index.php
reservmallen att användas.
Vilken mall kommer att användas för min bloggsida?
WordPress låter dig ha en ”Blogg” -sida (som kommer att visa de senaste inläggen) på en annan sida än målsidan (t.ex. http://www.example.com/blog/
).Så om så är fallet på din webbplats kommer bloggsidan alltid att använda mallen home.php
. Om home.php
inte finns kommer
reservmallen att användas.
Hur man konfigurerar landnings- sida och bloggsida?
För att konfigurera vilket innehåll som ska visas på din första sida, gå till WordPress Admin , under Verktyg> Läsning av , där kan du konfigurera ” Framsidan visas ” till visa en statisk sida eller dina senaste inlägg.
Om du väljer att visa en statisk sida på förstasidan har du också möjlighet att ställa in vilken sida som ska användas som platshållare för bloggen sida (som använder home.php
-mallen):
Svar
hämtat från WordPress-mallhierarki
Hemsidevisning
Som standard ställer WordPress in webbplatsens webbplats för att visa dina senaste blogginlägg. Denna sida kallas index för blogginlägg. Du kan också ställa in att dina blogginlägg ska visas på en separat statisk sida. Mallfilen home.php används för att återge blogginläggsindex, oavsett om den används som förstasida eller på separat statisk sida. Om home.php inte finns använder WordPress index.php.
- home.php
- index.php
Obs! Om front-page.php finns, kommer den att åsidosätta home.php-mallen.
Framsidan
Mallfilen på front-page.php används för att återge webbplatsens förstasida, oavsett om förstasidan visar blogginläggsindex (nämns ovan) eller en statisk sida. Förstasidesmallen har företräde framför mallen för blogginläggsindex (home.php). Om front-page.php-filen inte finns, använder WordPress antingen home.php- eller page.php-filerna beroende på inställningen i Inställningar → Läsning. Om ingen av dessa filer finns använder den index.php-filen.
1. front-page.php – Används för både ”dina senaste inlägg” eller ”en statisk sida” enligt inställningarna på förstasidan visar avsnittet Inställningar → Läsning.
2. home.php – Om WordPress inte kan hitta front-page.php och ”dina senaste inlägg” är inställda i avsnittet på förstasidan visas det efter home.php. Dessutom kommer WordPress att leta efter den här filen när inläggssidan är inställd på förstasidan visar avsnittet.
3. page.php – När ”förstasidan” är inställd på förstasidan visas avsnittet.
4. index.php – När ”dina senaste inlägg” är inställd på förstasidan visas avsnittet men home.php finns inte eller när förstasidan är inställd men page.php inte finns .
Som du kan se finns det många regler för vilken väg WordPress tar. Att använda diagrammet ovan är det bästa sättet att avgöra vad WordPress ska visa.
Svar
Jag bestämde mig för att testa vilken mall som används för var och en av följande sidor när de olika alternativen för förstasidan visas är inställda.
- exempel.net
- exempel.net/home/
- exempel.net/blog/
Resultaten är ganska långa men kan användas som referens eller fuskblad.
Källa: Hur gör mallarna på front-page.php och home.php skiljer sig åt i WordPress?
Anmärkning till redaktören: Jag försökte kopiera och klistra in tabellerna här men markdown-format krävs istället för HTML. Konvertera till markdown om du kan.