WordPress-mallhierarkin är en av de mest inflytelserika sakerna i temautvecklarnas liv. Användare kan behöva förstå det, plugins kan behöva interagera med det, men i allmänhet är det teman som handlar om mallhierarkin.
det beror på att det är WordPress-mallhierarkin som bestämmer vilken av filerna i ett tema som används vid en given tidpunkt. Det vill säga: mallhierarkin är grunden för vilken WordPress-teman gör sin konst.
syftet med denna artikel är att ytterligare belysa den här tanken. Vi kommer att definiera vad mallhierarkin gör, varför du behöver veta om det för att vara en effektiv modifierare av WordPress-webbplatser, och vi pratar om hur man arbetar med det och (mycket kortfattat) hur det fungerar.
- Vad är Mallhierarkin?
- gå i Mallhierarkin
- den ultimata fallbacken: vad och varför
- varför WordPress-Mallhierarkin finns
- en snabb diskussion om barnteman
- varför du behöver förstå WordPress-Mallhierarkin
- hur man arbetar med WordPress Mallhierarki
- hur Mallhierarkin fungerar i WordPress-koden
- Vidare läsning på Mallhierarkin
- nu vet du wordpress-mallhierarkin!
Vad är Mallhierarkin?
i hjärtat är mallhierarkin den valstruktur som WordPress använder för att bestämma vilken fil i temat som ska användas för att generera den fullständiga, slutliga HTML för en viss sida på din WordPress-webbplats.
WordPress måste ha ett sätt att veta hur man interagerar med temat. Det skulle vara möjligt att någon kunde skriva olika typer av komplex PHP-logik för sitt tema som förklarade för WordPress hur man interagerar med det. Det kan kanske vara en PHP-klass som matchade ett WordPress-definierat gränssnitt (i objektorienterad programmeringssans) som varje tema skulle behöva svara på.
men det är komplicerat-att läsa, än mindre att göra. Och det är just punkten i mallhierarkin: för att WordPress framgångsrikt ska kunna använda olika teman men också göra det relativt enkelt att skapa och ändra teman behövdes en enklare lösning. Och det är vad mallhierarkin är.
i sitt hjärta är mallhierarkin den valstruktur som WordPress använder för att bestämma vilken fil i temat som ska användas för att generera den fullständiga, slutliga HTML för en viss sida på din WordPress-webbplats.
de flesta filer i ett WordPress-tema är faktiskt medlemmar i mallhierarkin, och WordPress väljer att ringa på en av dem beroende på vilken typ av information Den försöker visa.
gå i Mallhierarkin
Om WordPress behöver visa inläggen (eller någon innehållstyp) av en specifik författare (användare) på en WordPress-webbplats, har den ett par behov. Främst:
- Det måste göra det enkelt för någon som gör eller ändrar ett tema för att anpassa en sida
- Det måste se till att om inga anpassningar behövdes, kommer det att ha något att använda
för att uppnå detta kommer mallhierarkin att prova olika filer i det för närvarande aktiva temat. Om de finns kommer de att använda dem. Om de inte gör det kommer det att fortsätta.
så för att hitta mallen som ska användas för att presentera alla inlägg för given författare, låt oss göra det författarens användarnamn ”david” som har ett numeriskt id
av 3
. (Säkert en slump. ; p) WordPress behöver veta vilken fil från ditt nuvarande tema som ska användas. Så här ser det ut genom dina temafiler:
- finns filen
author-david.php
? Nej… - finns filen
author-3.php
? Nej… - finns filen
author.php
? Nej… - finns filen
archive.php
? Nej… - finns filen
index.php
? Ja!
Du kommer att märka att det finns fem ” nej ” innan WordPress får ett ja. Var och en av dem, och följande fråga är mallhierarkin. Så snart WordPress kommer till ett ”ja” på en av dessa frågor görs mallhierarkins Roll. Men det här är verkligen viktigt.
filen som hittas är ansvarig för HTML på hela sidan. Bokstavligen allt som WordPress gör eller visar på en sida på din webbplats kommer från en enda mallhierarkifil i ditt tema. (Som du förmodligen redan vet betyder det inte att alla saker WordPress gör har fastnat i den filen, men de sätt som de andra sakerna dras in ligger utanför ramen för denna artikel.)
så det är dessa frågor (WordPress bestämde sig för att leta efter baserat på webbadressen som personen besöker) som utgör mallhierarkin. Och bara så du vet, om du inte har ett index.php
, har du inte ett WordPress-tema. Det är det sista stoppet för varje del av mallhierarkin.
den ultimata fallbacken: vad och varför
som jag just sa, utan ett index.php
, har du inte ett WordPress-tema. Men om du har en behöver du inte några andra filer som du kan använda från mallhierarkin. Att den andra saken att inse.
WordPress behöver, som vi sa ovan, viss säkerhet att det alltid kommer att kunna göra en sida för slutanvändaren. Ett tema måste ge det. Så det är vad mallhierarkin är för. Men behovet av en slutlig reserv är absolut, och det är därför WordPress inte låter dig aktivera ett tema som inte har en index.php
fil.
varför WordPress-Mallhierarkin finns
mallhierarkin finns för att göra det lättare för temadesigners och utvecklare att anpassa utseendet på en WordPress-webbplats. Det är mycket vanligt att en klient gör sidorna ”tag archive” för sin blogg annorlunda än sidan med enstaka inlägg. Så WordPress mallhierarki stöder det behovet.
som vi nämnde ovan finns det alternativ till mallhierarkin som man kan föreställa sig. Men få av dem är bra. Och det är i grunden hela anledningen till att mallhierarkin finns.
en snabb diskussion om barnteman
som du kanske vet har WordPress dessa saker som kallas barnteman. Och egentligen är WordPress – barnteman mer än hälften av anledningen till att älska mallhierarkin. Barn teman är sätt att designers och utvecklare kan göra små tweaks till specifika sidor på en webbplats utan att behöva skapa ett helt tema för sig själva.
den fullständiga utformningen av barnteman är ett ämne för diskussion långt bortom den här artikeln. Om du vill veta mer om barn teman, kommer du att väl betjänas av dessa två artiklar om WPShout, eller den här på WordPress.org webbplats.
kärnan att veta om barnteman är att WordPress-mallhierarkin är medveten om dem och arbetar med dem. Så vad jag tidigare förklarade om att leta efter filer ovan för en författarmall är faktiskt lite annorlunda om ett barntema används. Om det gör det ser det ut som:
- finns filen
author-david.php
I barntemat? Nej… - finns filen
author-david.php
I det överordnade temat? Nej… - finns filen
author-3.php
I barntemat? Nej… - finns filen
author-3.php
I det överordnade temat? Nej… - finns filen
author.php
I barntemat? Ja!
Du kommer att märka att det är fler steg för att komma så långt in i mallhierarkin. Du kommer också att märka att barntemat alltid kontrolleras först. Det här är en väldigt viktig sak om mallhierarkin och barnteman—deras filer slår alltid en förälders, där mallhierarkin berörs.
varför du behöver förstå WordPress-Mallhierarkin
teman utan att ha en god förståelse för mallhierarkin är nästan omöjlig. Du kan kanske göra det, men det kommer att kännas som förvirrande och mystifierande Magi.
det hjälper också, om du försöker göra det, att veta om några plugins som gör mallhierarkin lite tydligare: vilken Mall och visa aktuell Mall. Dessa båda gör samma sak (vilket är användbart om du också känner till mallhierarkin): de berättar vilken mallhierarkifil som används för att bygga en viss sida. De säger båda faktiskt lite mer än det, men det är deras primära användning (åtminstone för mig).
varför du behöver veta om mallhierarkin och förstå dess struktur—även med vilken mall i ditt verktygsbälte—är att du använder den för att ”åsidosätta.”För barntema är en ”åsidosättning” lika lätt som att skapa en fil med samma namn i ditt barntema och kalla det bra. Men när du försöker vara mer specifik än så måste du hänvisa till ett diagram över mallhierarkin. Det är där jag alltid når wphierarchy.com. WordPress.org har ett diagram, liksom en Google-Bildsökning. Men ingenting är snabbare att komma åt från ett viloläge än den här webbplatsen.
hur man arbetar med WordPress Mallhierarki
om du har läst linjärt tror jag att du redan har ett ganska bra svar på den här frågan. Men det här är internet och jag vet att folk skumma. Du arbetar med mallhierarkin genom att skapa ett tema. Oavsett om det är ett självbärande tema eller ett ”barn” som lutar på en ”förälder”, är ett temas filer i grunden hur du ändrar hur du arbetar med mallhierarkin.
i grund och botten skapar du filen som matchar var i mallhierarkin du försöker ändra hur sidan ser ut. Så om du försöker få HTML för en enda sida att se annorlunda ut kan du ange en sidmall eller skapa en fil i ditt tema med inläggets ID rullat in.
ingen av dessa är perfekta. Men det är i grunden hur det fungerar.
hur Mallhierarkin fungerar i WordPress-koden
” hur fungerar WordPress-mallhierarkin?”är verkligen en akademisk fråga som nästan ingen WordPress utvecklare någonsin behöver ett svar på. Men, en dag befann jag mig bara tillfälligt undrar, och så jag tittade upp det. Och den här artikeln kom ut:
det korta svaret, för dem som är intresserade av att läsa detta men inte intresserade nog att klicka, är en massa if
s och elseif
s i PHP-kod. Inte mycket mer. Det är inte den mest eleganta koden som ligger till grund för denna kraftfulla och viktiga aspekt av WordPress, men den fungerar bra och möjliggör alla teman du någonsin har känt och älskat i WordPress. Ganska coolt!
Vidare läsning på Mallhierarkin
Om du är ny på några av koncepten i den här artikeln, eller bara behöver en uppdatering, kolla in dessa andra artiklar Vi har. Först två för nybörjare:
sedan, för dem som vill dyka djupare och tänka hårdare om mallhierarkin och hur det fungerar, och hur du behöver arbeta med det:
nu vet du wordpress-mallhierarkin!
Förhoppningsvis med detta under ditt bälte har du en ganska bra känsla för WordPress-mallhierarkin: att det är så som WordPress interagerar med ett tema för att bestämma hur man bygger HTML som det ska visa dina besökare. Och förhoppningsvis förstår du också varför WordPress har en mallhierarki (för att få teman att fungera med det) och varför du använder det (för att anpassa sidorna på din webbplats, via ditt tema, lättare). Och jag hoppas att du också vet hur man interagerar med det: genom att lägga till eller ta bort filerna som den interagerar med. Med det, glad hacking!