det finns många många sätt du kan ändra utseendet på en viss sida på din WordPress webbplats. Du kan ändra innehållet i WordPress – innehållsredigeraren. Du kan ändra CSS-reglerna som påverkar webbplatsen. Eller skapa en ny fil i ditt WordPress-temas mallhierarki för att motsvara den specifika sidan. Eller så kan du använda en tema sidmall som utformats speciellt för den sidan. Den sista är vad vi pratar om här. I denna handledning kommer vi att täcka både hur man skapar en WordPress Anpassad sidmall, och varför du kanske vill göra det. Vi börjar med varför.
när du säger ”WordPress tema anpassad sidmall”, vad menar du?
det finns ett stort terminologiproblem med detta ämne. Som jag antydde ovan finns det många saker med det vaga begreppet ”sida” och ”Mall” i WordPress-världen som inte är det vi pratar om här. Det första jag * inte * menar när jag säger ” WordPress Anpassad sidmall ”är” ett WordPress-tema.”(Många som är nya på WordPress säger ” mallar ”när de menar” ett WordPress-tema.”)
så vad menar jag med ”anpassad sidmall”? Jag menar vad som visas till höger. Du redigerar till exempel Sidinnehållstypen i WordPress (även om den, som vi ser senare, nu kan innehålla andra WordPress-innehållstyper). Och när du redigerar din sida märker du rutan” Sidattribut”, och inom det kan du (beroende på om ditt tema redan har dessa mallar) se den här rullgardinsmenyn” Mall”. Den här markeringsrutan illustreras till höger (den finns också på höger sida av skärmen ”sidredigering”). Om du ser den här rullgardinsmenyn beror det på att ditt tema ger några av dessa ”anpassade sidmallar.”De är faktiskt filer i ditt nuvarande aktiva temas mapp (eller dess förälder), och har en enda särskiljande funktion som vi kommer till senare. Men den här valbara rullgardinsmenyn med namngivna sidmallar är vad vi pratar om här idag.
hur passar detta in i Mallhierarkin?
jag har skrivit tidigare, och jag kommer sannolikt att göra det igen, om hur mallen — det finns det ordet igen — hierarkin är verkligen nyckelbegreppet du behöver förstå för att bygga eller ändra ett WordPress-tema. (Här är vår snabba introduktion till det.) Nästan allt annat är en detalj som du kan träna när du har förstått den grundläggande dynamiken i mallhierarkin. Det specifika vi menar idag sitter dock utanför mallhierarkin. Denna ”valda mall” ersätter i huvudsak hela urvalsprocessen för mallhierarkin.
om en anpassad sidmall valdes i rullgardinsmenyn som vi visade ovan kommer den ”mall” – filen att användas. Full stop, inget undantag.
för att upprepa att om en anpassad sidmall väljs kommer den ”mall” – filen att användas. Full stop, inget undantag. Om inte, kommer WordPress-mallhierarkin att leta efter ett något annorlunda sätt att någon kanske har försökt att utforma en viss sida — med en page-123.php
eller page-custom-template-utilizer.php
– fil. (Skillnaden mellan den anpassade mallen och en med denna page-$id
eller page-$slug
struktur är egentligen bara i interaktion och gränssnitt.) Om ingen av dem hittas kommer WordPress att falla tillbaka till page.php
, om det existerar, och om inte skulle vi hamna i den ultimata reserv, index.php
.
om du undrar varför du skulle använda den här metoden i motsats till den numeriska eller slug en — i båda fallen skapar du en anpassad fil i ditt tema, trots allt — anledningen är att använda anpassade mallar ger dig mer flexibilitet och oberoende mellan ditt tema och webbplatsens databas och innehåll. Av den anledningen skulle jag rekommendera det i nästan alla situationer när du är osäker på vilken du ska gå med. Med den numeriska eller slug-baserade page-*.php
– strukturen är du tvungen att göra ditt tema känt om det specifika sättet som din WordPress-databasdata är just nu. (Så om du återanvänder temat på en annan WordPress-webbplats, till exempel, är den filen värdelös.)
Hur gör jag en WordPress Anpassad sidmall?
OK, så vi vet att anpassade sidmallar kommer att ersätta WordPress-mallhierarkin. Och att vi kommer att använda dem på faktiska sidor på vår WordPress-webbplats genom att välja dem från en ”mall” rullgardinsmeny till höger i det relevanta innehållet. Så det är dags att komma till processen för att skapa en WordPress Anpassad sidmall.
vad du ska göra är att lägga till ditt tema (och det borde verkligen vara ett barntema om det inte finns en mycket stark begränsning som gör det omöjligt för dig) en fil med ett namn som my-template.php
eller really-cool-awesome.php
. Det spelar ingen roll, så länge du inte faktiskt använder ett namn som ingår i mallhierarkin är du gyllene. (Vilket betyder: använd inte ett namn som page-whatever.php
. Som vi berörde ovan tror WordPress mallhierarki att den äger en fil som heter med det mönstret.)
när du har fått filen (cool-page-template.php
, oavsett vad du föredrar), bör du starta det så här:
<?php/*Template Name: Name To Appear In The Dropdown*/?>This is my custom template.
och du är i princip klar. Som du förmodligen kan gissa, namnet som kommer att visas i rullgardinsmenyn ”Mall” är vad jag smart kallade ”namn som ska visas i rullgardinsmenyn.”Precis som ditt temas style.css
– fil, eller ett plugin-huvudfil, använder WordPress informationen i denna kodkommentar för att ge den sammanhang att fungera.
då kommer innehållet på våra sidor, i det här fallet, att vara den mycket grundläggande HTML-texten ”Detta är min anpassade mall”. Som du kanske gissar är det här där du är mycket mer benägna att lägga HTML-innehållet du vill ska visas på sidan. Så dina <h1>
– taggar, <p>
– taggar, och kanske (om du är fancy exporterad) Lite PHP för att göra anpassat beteende du vill visa upp.
Varför din WordPress anpassade sidmall inte dyker upp
jag har (mer än en gång) haft erfarenheten att min nya WordPress-sidmall inte dyker upp. Den överlägset vanligaste orsaken är att jag har skrivit (eller felaktigt) hur filhuvudkommentaren ska se ut. Det måste märkas med exakt rätt titel. Så Template Name: Narrow Page
är perfekt, men WordPress kommer aldrig att hitta något som istället har en rubrik på Template: Custom
.
det finns några andra saker att kolla på. Andra orsaker till att din anpassade sidmall inte visas:
- du lägger filen på fel ställe (den måste vara i ditt nuvarande löpande tema eller dess förälder)
- du gav din mall en fil som börjar med
page-
. På grund av en funktion i WordPress-teman behandlas anpassade sidmallar som börjar medpage-
istället som sida i mallhierarkin. - ditt tema saknar en av dess två kräver filer, och så fungerar inte. (WordPress-teman * måste * ha en
index.php
– fil och enstyle.css
.) - det var ett problem med detta tillbaka i dagarna av WordPress 4.9 (för några år sedan nu)
sidmallar för icke-”sida” WordPress anpassade posttyper
för en stor del av WordPress historia, dessa ”anpassade sidmallar” var bara för ”sida” innehållstyp. (WordPress har bara två innehållstyper, ”inlägg” och ”sidor” som standard.) Men i WordPress 4.7, har funktionen lagts till att du kan använda dessa sidmallar med nya innehållstyper (ofta kallade ”anpassade posttyper”).
för att göra detta lägger du till en annan rad i din ”filhuvud.”Så det skulle se lite ut så här:
<?php/*Template Name: Narrower TemplateTemplate Post Type: post, page, event*/// Page HTML and PHP goes here...
som du sannolikt kan gissa, prefaces den här nya Template Post Type:
– rubriken” kodnivå ” -namnet för de (anpassade) posttyperna. Du kommer att notera att i ovanstående exempel listar vi page
innehållstyp som WordPress levereras med, liksom post
en. Dessutom stöder vi en tredje ”anpassad posttyp” som heter event
.
en bra anledning att använda anpassade sidmallar
nu om du har gjort det tidigare kommer du att märka att sidan ovan inte har någon styling och ser väldigt väldigt lite ut som resten av din WordPress-webbplats (om du inte har det enklaste temat som kan tänkas). Det beror på att vår fil har en enkel sak i det, och saknar funktionalitet mycket vanligt i alla andra temasidor. Den har ingen get_header()
, get_footer()
, eller slingan, kallar att alla dina andra temafiler sannolikt gör.
ibland vill du ha en sida som inte är mycket som resten av din webbplats, men fortfarande en del av din WordPress-hanteringsupplevelse. Dessa anpassade mallar är perfekta för det.
men det illustrerar en av de stora krafterna i anpassade mallar som dessa också: ibland vill du ha en sida som inte är mycket som resten av din webbplats, men fortfarande en del av din WordPress-hanteringsupplevelse. Dessa anpassade mallar är perfekta för det. Medan du ser dem används också för arkivsidor, eller (mindre vanligt) kontaktsidor, förbises denna förmåga ofta.
och slutligen några praktiska råd om sidmallar
när du vill skapa en sida som ser ut som dina andra sidor (men lite annorlunda) skulle jag faktiskt börja med att kopiera en befintlig fil från ditt tema, förmodligen page.php
. Detta beror helt enkelt på att de flesta av oss tycker att det är lättare att ändra något än att bygga från grunden. Kodexemplet ger din sidmall den” tomma vita sidan ” känslan, där du förmodligen vill lägga till eller ta bort vissa specifika detaljer från din befintliga page.php
– Mall. Att ta bort sidofältet eller sidfoten är till exempel mycket vanliga orsaker till att människor gör en ”anpassad sidmall” i WordPress.
som vi har täckt, om du duplicerar ditt temas page.php
– fil för att börja skapa din anpassade sidmall, måste du se till att du lägger till ”custom page template header” vi har ovan. Återigen är det den” magiska ” sidan som gör att dessa mallar bara fungerar. Nu, gå göra fantastiska sidor!
bildkredit: Infrogmation