Hierarkin för WordPress-mallar
Med WordPress-teman kan du ändra designen på din webbplats, vilket ger dig kontroll över utseendet och känslan. De är i huvudsak samlingar av olika mallfiler som arbetar tillsammans och skapar den övergripande utformningen av din webbplats.
Innan du dyker djupare in i WordPress-teman är det viktigt att du har en förståelse för hur WordPress fungerar och hur de olika sidorna på din webbplats skapas. WordPress interagerar med en databas för att lagra ditt innehåll. Det innebär att när du skapar ett nytt inlägg eller en ny sida, lever innehållet i ditt inlägg eller din sida i en databas och det visas endast med hjälp av mallar när besökaren frågar efter just det innehållet.
Ett WordPress-tema är en samling mallar (CSS- och PHP-filer) som WordPress använder för att visa innehållet i databasen. WordPress letar efter filer i ett tema som ska användas för att återge den aktuella sidan i en viss ordning. Detta kallas en ”mallhierarki”, som används för att skapa och utöka WordPress-teman.
WordPress-teman bestämmer hur ditt innehåll ska visas på din webbplats. En mall i WordPress är en enskild fil som bestämmer hur en specifik sida eller uppsättning sidor ska se ut på framsidan av din webbplats. När du ändrar ditt tema ändrar du hur innehållet visas utan att ändra själva innehållet.
WordPress-teman använder olika mallfiler för att generera en komplett webbsida. När du till exempel går in på en WordPress-webbplats kan du faktiskt se flera olika mallfiler som kombineras för att skapa en komplett sida.
Om du till exempel tittar på en indexsida, som förstasidan på en blogg, ser du vanligtvis en rubrik som skapas av mallen header.php
, innehåll som skapas av index.php
, sidebar skapad av sidebar.php
och sidfot skapad av footer.php
Om du däremot går in på en enskild sida kommer du fortfarande att se samma rubrik, samma sidebar och samma sidfot, men innehållet skulle istället skapas av single.php
. Frågan är hur man vet vilken av dessa mallfiler som träder in och vid vilken tidpunkt? Det är där WordPress-mallhierarkin kommer in.
WordPress-mallhierarkin bestämmer i vilken ordning dina mallfiler laddas i ditt WordPress-tema. WordPress söker efter dessa filer för att avgöra hur din webbplats ska laddas.
Om du öppnar temamappen ”Twenty Fifteen” (ett av WordPress standardteman) finns det mer än 15 mallfiler. Dessa inkluderar mallfiler för 404, arkiv, författarbiografi, kommentarer och innehållslänkar för att nämna några. WordPress använder informationen Query String som finns i varje länk på din webbplats för att avgöra vilken mall eller uppsättning av mallar som ska användas för att visa sidan.
WordPress bestämmer vilken typ av sida (söksida, kategorisida eller startsida till exempel) som efterfrågas och väljer sedan den lämpliga mallen som föreslås av WordPress mallhierarki för att generera innehållet.
Namnkonvention
WordPress har en speciell och strikt namnkonvention som är förknippad med temafiler, så alla teman delar en uppsättning filer med ganska gemensamma namn i bakänden. För att enkelt hantera ditt innehåll kan du till exempel skapa header.php
och footer.php
-filer. Dessa mallfiler måste heta header.php
och footer.php
.
WordPress letar efter mallfiler med specifika namn i det aktuella temats katalog för att avgöra vilken mall som ska användas, oftast används den första matchande mallfilen. Om WordPress inte kan hitta en mallfil med ett matchande namn hoppar den ner till nästa filnamn i hierarkin. Om WordPress inte hittar någon matchande mallfil kommer den att använda index.php (temats mallfil för startsidan).
Så när du redigerar mallfiler måste du tänka på vilken typ av innehåll det handlar om och sedan redigera den lämpliga mallfilen för den typen av innehåll. Samma sak gäller när du skapar WordPress-teman från grunden.
Minimala temakrav
De enda filer som krävs för att ett WordPress-tema ska fungera är index.php
och style.css
. index.php
är den huvudsakliga och enda filen som kommer att bearbeta alla WordPress-förfrågningar samt webbplatsens struktur.
De minsta filerna som krävs för att ett WordPress-tema ska fungera och vara synliga i WordPress-instrumentpanelen för aktivering är index.php
och style.css
.
Om index.php
eller style.css
saknas visas följande fel.
Följande teman är installerade men är ofullständiga. Teman måste ha ett stilblad och en mall.
-
style.css
(krävs) -
index.php
(krävs) -
functions.php
(valfritt) -
screenshot.png
(valfritt)
Den här uppdelningen ökar effektiviteten avsevärt. Att kombinera allt i en enda stor fil index.php
kan tekniskt sett fungera, men det skulle inte vara vackert och skulle leda till oändliga problem i slutändan. Dessutom skulle det vara en mardröm att redigera ett tema!
Här är en lista över de temafiler som WordPress känner igen.
-
style.css
-
rtl.css
-
index.php
-
comments.php
-
front-page.php
-
single.php
-
page.php
-
author.php
-
archive.php
Det finns många andra filer också, du kan se listan över mallfiler för mer information.
Twenty Fifteen Template Hierarchy Example
Antag att du har aktiverat Twenty Fifteen-temat och en användare besöker sidan yoursite.com/author/tahir/
. Först söker WordPress efter mallen author-tahir.php
men author-tahir.php
är inte tillgänglig. WordPress kommer sedan att leta efter author.php
, om den inte heller finns kommer den att leta efter archive.php
. Den här filen finns tillgänglig i Twenty Fifteen-temat. Om du tar bort eller byter namn på archive.php
kommer WordPress att använda index.php
för att rendera sidan.
Varje gång en användare besöker din webbplats flyttar WordPress uppåt i mallhierarkin tills den hittar en mallfil som passar. Detta har allt att göra med hur dessa filer är namngivna.
Plugin ”What The File”
För att ta reda på vilken fil och mall WordPress använder för att visa sidinnehållet som du för tillfället tittar på, kan du använda den mycket praktiska pluginen What The File. Detta är ett gratis insticksprogram som utvecklats av Barry Kooij.
Detta insticksprogram lägger till ett alternativ i verktygsfältet som visar vilken fil och vilka mallar som används. Jag installerade ”What The File Plugin” i testsyfte på min lokala server och fann att det fungerade utmärkt.
För att testa vilka filer WordPress använder om en specifik fil inte är tillgänglig bytte jag namn på två filer (i Twenty Fifteen Theme). I skärmdumpen nedan kan du se vilka filer WordPress använder för att visa innehåll.
Du kan se att Twenty Fifteen-temat använder filen content-search.php
för att visa sökresultat. Om du tar bort eller byter namn på content-search.php
kommer WordPress att använda content.php
för att visa sökresultat istället.
Pluginet ”What The File” gör det också möjligt att klicka på filnamnet direkt för att redigera det via temaredigeraren. Detta plugin kräver WordPress 3.1 eller senare, det fungerade bra med WordPress 4.1 också.