der er mange mange måder, du kan ændre udseendet på en bestemt side på din hjemmeside. Du kan ændre indholdet i editoren. Du kan ændre de CSS-regler, der påvirker hjemmesiden. Eller opret en ny fil i skabelonhierarkiet for dit tema, så den svarer til den specifikke side. Eller du kan bruge en temasideskabelon, der er designet specielt til den pågældende side. Den sidste er, hvad vi taler om her. I denne vejledning dækker vi både, hvordan du opretter en brugerdefineret sideskabelon, og hvorfor du måske vil gøre det. Vi starter med hvorfor.
når du siger “tema brugerdefineret sideskabelon”, hvad mener du?
der er et stort terminologiproblem med dette emne. Som jeg antydede ovenfor, er der mange ting med den vage forestilling om “side” og “skabelon” i Ordtryksverdenen, der ikke er det, vi taler om her. Den første ting, jeg * ikke * mener, når jeg siger” brugerdefineret sideskabelon “er” et ordtrykstema.”(Mange mennesker, der er nye til ordtryk, siger “skabeloner”, når de betyder ” et Ordtrykstema.”)
så hvad mener jeg med “brugerdefineret sideskabelon”? Jeg mener, hvad der vises til højre. Du redigerer f.eks. sideindholdstypen (selvom den, som vi vil se senere, nu kan indeholde andre indholdstyper). Og mens du redigerer din side, bemærker du feltet” Sideattributter”, og inden for det kan du (afhængigt af om dit tema allerede har disse skabeloner) se denne” skabelon ” rullemenu. Dette markeringsfelt er illustreret til højre (det er også på højre side af skærmen “sideredigering”). Hvis du ser denne rullemenu, skyldes det, at dit tema indeholder nogle af disse “brugerdefinerede sideskabeloner.”De er faktisk filer i dit aktuelt aktive temas mappe (eller dets forælder) og har en enkelt kendetegn, vi kommer til senere. Men denne valgbare rullemenu med navngivne sideskabeloner er det, vi taler om her i dag.
hvordan passer dette ind i Skabelonhierarkiet?
jeg har skrevet før, og jeg vil sandsynligvis gøre det igen, om hvordan skabelonen — der er det ord igen — hierarki er virkelig det nøglekoncept, du skal forstå for at opbygge eller ændre et Ordtrykstema. (Her er vores hurtige introduktion til det.) Næsten alt andet er en detalje, du kan træne, når du har forstået den grundlæggende dynamik i skabelonhierarkiet. Den specifikke ting, vi betyder i dag, sidder dog uden for skabelonhierarkiet. Denne” valgte skabelon ” erstatter i det væsentlige hele udvælgelsesprocessen for skabelonhierarkiet.
hvis en brugerdefineret sideskabelon blev valgt i rullemenuen, vi viste ovenfor, vil den “skabelon” – fil blive brugt. Fuld stop, ingen undtagelse.
for at gentage, at hvis en brugerdefineret sideskabelon er valgt, vil den “skabelon” – fil blive brugt. Fuld stop, ingen undtagelse. Hvis ikke, vil Skabelonhierarkiet se efter en noget anderledes måde, som nogen måske har forsøgt at style en bestemt side — med en page-123.php
eller page-custom-template-utilizer.php
fil. (Forskellen mellem den brugerdefinerede skabelon og en med denne page-$id
eller page-$slug
struktur er virkelig kun i interaktion og grænseflade.) Hvis ingen af dem er fundet, vil vi falde tilbage til page.php
, hvis den eksisterer, og hvis ikke ville vi ende med det ultimative fald, index.php
.
hvis du undrer dig over, hvorfor du vil bruge denne metode i modsætning til den numeriske eller slug — i begge tilfælde opretter du en brugerdefineret fil i dit tema — er årsagen til, at brug af brugerdefinerede skabeloner giver dig mere fleksibilitet og uafhængighed mellem dit tema og din sides database og indhold. Af den grund vil jeg anbefale det i næsten enhver situation, når du er usikker på, hvad du skal gå med. Med den numeriske eller slug-baserede page-*.php
struktur er du tvunget til at gøre dit tema opmærksom på den specifikke måde, dine databasedata er lige nu. (Så hvis du genbruger temaet på en anden hjemmeside, for eksempel, at filen er ubrugelig.)
Hvordan laver jeg en brugerdefineret sideskabelon?
OK, så vi ved, at brugerdefinerede sideskabeloner vil erstatte skabelonhierarkiet. Og at vi vil gøre brug af dem på faktiske sider af vores hjemmeside ved at vælge dem fra en “skabelon” rullemenu på højre side af det relevante stykke indhold. Så det er tid til at komme til processen for at oprette en brugerdefineret sideskabelon.
hvad du vil gøre er at tilføje til dit tema (og det burde virkelig være et undertema, medmindre der er en meget stærk begrænsning, der gør det umuligt for dig) en fil med et navn som my-template.php
eller really-cool-awesome.php
. Det betyder ikke rigtig noget, så længe du faktisk ikke bruger et navn, der er en del af skabelonhierarkiet, er du gylden. (Hvilket betyder: brug ikke et navn som page-whatever.php
. Som vi rørte ved ovenfor, mener template ‘ s skabelonhierarki, at det ejer en fil, der er navngivet med det mønster.)
når du har fået filen (cool-page-template.php
, uanset hvad du foretrækker), skal du starte den sådan:
<?php/*Template Name: Name To Appear In The Dropdown*/?>This is my custom template.
og du er dybest set færdig. Som du sandsynligvis kan gætte, det navn, der vises i rullemenuen “skabelon”, er det, jeg klogt kaldte “navn, der skal vises i rullemenuen.”Ligesom dit tema er style.css
fil, eller et plugin hovedfil, bruger
så vil indholdet af vores sider i dette tilfælde være den meget grundlæggende HTML-Tekst “Dette er min brugerdefinerede skabelon”. Som du måske gætter, er det her, hvor du er meget mere tilbøjelig til at placere det HTML-indhold, du vil have vist på siden. Så dine <h1>
tags, <p>
tags, og måske (hvis du har lyst til, at du skal gøre det) nogle PHP til at gøre brugerdefineret adfærd, du vil vise frem.
Hvorfor din brugerdefinerede sideskabelon ikke vises
jeg har (mere end en gang) haft den oplevelse, at min nye skabelon ikke vises. Langt den mest almindelige årsag er, at jeg har skrevet (eller misremembed), hvordan filhovedkommentaren skal se ud. Det skal mærkes med den nøjagtige rigtige titel. Så Template Name: Narrow Page
er perfekt, men ordtryk vil aldrig finde noget, der i stedet har en overskrift på Template: Custom
.
der er et par andre ting at kontrollere. Andre grunde til, at du måske finder ud af, at din brugerdefinerede sideskabelon ikke vises:
- du sætter filen på det forkerte sted (det skal være i dit nuværende kørende tema eller dets overordnede)
- du gav din skabelon en fil, der starter med
page-
. Brugerdefinerede sideskabeloner, der starter medpage-
, behandles i stedet som side i skabelonhierarkiet. - dit tema mangler en af sine to kræver filer, og det virker ikke. (Temaer * skal * have en
index.php
fil og enstyle.css
.) - der var et problem med dette tilbage i dagene af 4.9 (for nogle år siden nu)
sideskabeloner til ikke – “side” brugerdefinerede posttyper
for en stor del af Sideskabelonens historie var disse “brugerdefinerede sideskabeloner” kun for indholdstypen “side”. Som standard er der kun to indholdstyper, “indlæg” og “sider”.) Men i ordtryk 4.7, blev funktionen Tilføjet, at du kunne bruge disse sideskabeloner med nye indholdstyper (ofte kaldet “brugerdefinerede posttyper”).
for at gøre dette tilføjer du en anden linje til din “filhoved.”Så det ville se lidt ud som dette:
<?php/*Template Name: Narrower TemplateTemplate Post Type: post, page, event*/// Page HTML and PHP goes here...
som du sandsynligvis kan gætte, denne nye Template Post Type:
header forord “kode-niveau” navn for de (brugerdefinerede) posttyper. Du vil bemærke, at i ovenstående eksempel viser vi den page
indholdstype, som post
en. Derudover understøtter vi en tredje “brugerdefineret posttype” kaldet event
.
en god grund til at bruge brugerdefinerede sideskabeloner
nu, hvis du har gjort dette før, vil du bemærke, at siden ovenfor ikke har nogen styling og ser meget meget lidt ud som resten af din hjemmeside (medmindre du har det enkleste tema tænkelige). Det skyldes, at vores fil har en simpel ting i den og mangler funktionalitet, der er meget almindelig på alle andre temasider. Det har ingen get_header()
, get_footer()
eller Loop, opkald, som alle dine andre temafiler sandsynligvis gør.
nogle gange vil du have en side, der ikke ligner resten af din hjemmeside, men stadig er en del af din oplevelse. Disse brugerdefinerede skabeloner er perfekte til det.
men det illustrerer også en af de store kræfter i brugerdefinerede skabeloner som disse: nogle gange vil du have en side, der ikke ligner resten af din side, men stadig en del af din oplevelse af administration. Disse brugerdefinerede skabeloner er perfekte til det. Mens du ser dem bruges også til arkiver sider, eller (mindre almindeligt) kontakt sider, denne evne er ofte overset.
og endelig nogle praktiske råd om sideskabeloner
når du ønsker at lave en side, der ligner dine andre sider (men lidt anderledes), vil jeg faktisk starte med at kopiere en eksisterende fil fra dit tema, sandsynligvis page.php
. Dette er simpelthen fordi de fleste af os har lettere ved at ændre noget end at bygge fra bunden. Kodeeksemplet giver din sideskabelon den” tomme hvide side ” mening, hvor du sandsynligvis ønsker at tilføje eller fjerne nogle specifikke detaljer fra din eksisterende page.php
skabelon. Fjernelse af sidebjælken eller sidefoden er for eksempel meget almindelige grunde til, at folk opretter en “brugerdefineret sideskabelon” i ordtryk.
som vi har dækket, hvis du duplikerer dit temas page.php
fil for at begynde at lave din brugerdefinerede sideskabelon, skal du sørge for at tilføje “brugerdefineret sideskabelonoverskrift”, vi har ovenfor. Igen, det er den” magiske ” side, der gør disse skabeloner bare arbejde. Nu, gå gøre fantastiske sider!
Billedkredit: Infrogmation