kontroller gør ordtryk virkelig fleksibel. Ved at tilføje kontrolområder til dine temaer lader du brugerne indsætte deres eget brugerdefinerede indhold uden at skulle skrive en kodelinje.
de er mest almindelige i sidebjælker og sidefødder, hvor de ofte bruges til at holde kontroller som f.eks. Men hvis du føjer dem til din side og sender skabeloner, gør du dem endnu mere magtfulde.
du kan tilføje kontrolområder til enhver skabelonfil, du kan lide. Jeg kan godt lide at tilføje masser af dem til mine temaer, på steder som overskriften, før og efter hovednavigationen, og før og efter indholdet. Du kan enten føje dem til en skabelondel (såsom overskriften), der bruges af hver side på din side, eller du kan være mere specifik og blot tilføje dem til skabelonfiler for en given indholdstype.
i dette indlæg vil jeg vise dig, hvordan du gør netop det. Jeg opretter et underordnet tema for standard tyve sytten tema og derefter inden for det underordnede tema opretter jeg nogle nye skabelonfiler: en brugerdefineret sideskabelonfil, en kategoriarkivfil og en enkelt postskabelonfil.
i hver af disse vil jeg tilføje et kontrolområde, der er specifikt for den pågældende indholdstype, så brugerne kun vil se det, når de ser en side ved hjælp af henholdsvis sideskabelonen, et kategoriarkiv eller et enkelt indlæg.
så lad os komme i gang!
Bemærk: Jeg har tilføjet koden til dette indlæg til GitHub, så du kan tjekke det, hvis du arbejder sammen med denne tutorial.
opsætning af Undertemaet
jeg skal bruge et barn af det tyve sytten tema: hvis du arbejder med dit eget tema, kan du redigere det direkte i stedet for at oprette et undertema. Men hvis du bruger et tredjeparts tema, skal du oprette et undertema. Dette skyldes, at når du opdaterer temaet, vil eventuelle ændringer, du foretager i det, gå tabt.
så opret en ny mappe med navnet på dit tema i mappen indhold/temaer. Jeg kalder mine skabeloner. Inden for det skal du tilføje en stil.css-fil og tilføj dette til det:
husk, Hvis du arbejder med dit eget tema, kan du springe dette trin over. Og hvis du bruger et andet overordnet tema, skal du redigere stilarket for at afspejle det. Hvis du ikke er sikker, så tjek vores indlæg om oprettelse af underordnede temaer.
registrering af kontrolområderne
før vi kan tilføje kontrolområderne til vores skabelonfiler, skal vi registrere dem i temaets funktionsfil. Åbn din funktionsfil, hvis dit tema allerede har et, eller hvis det er et nyt undertema, skal du oprette en fil kaldet funktioner.php.
lad os starte med at tilføje den tomme funktion for at registrere kontrollerne og tilslutte den til widgets_init
krogen. Føj dette til din funktionsfil:
inden for denne funktion registrerer vi fire kontrolområder: en af de enkelte post-og kategoriarkivskabeloner og to til den brugerdefinerede sideskabelon.
start med at registrere den første kontrol:
dette bruger funktionen register_sidebar()
med en række parametre som følger:
- navnet på kontrolområdet, som vises på administratorskærmen til Kontroller og tilpasningen. Jeg har lavet dette oversætteligt.
- et unikt ID for kontrolområdet.
- markering for før kontrollen, som bruger pladsholdere til internationalisering.
- markering for efter kontrollen.
- markering for før og efter kontroltitlen, som er vedlagt i et
h3
element.
så det er den første. Nu, stadig inde i din funktion, Tilføj de andre tre:
så vi har nu fire kontroller:
- en efter indholdet på enkelte indlæg.
- en før indholdet på en kategori Arkiv.
- en før og en efter indholdet på vores side skabelon.
hvis du vil flytte dine kontrolområder (f.eks. sætte kategoriarkivet et efter indholdet eller det enkelte indlæg et før indholdet), skal du omdøbe dem korrekt. Dette er for at du ved, hvad der sker, når du kommer til at redigere din kode i fremtiden, og dine brugere ved, hvor kontrolområderne vil blive output, når de tilføjer kontroller til dem via Kontroladministrationsskærmen. Husk, at hvis du ændrer dette, skal du placere koden for at udskrive kontrollerne på det rigtige sted i dine skabelonfiler i næste trin, hvilket kan være anderledes end hvor jeg lægger min.
hvis du nu åbner din administratorside for kontroller, kan du se dine kontrolområder, klar til Kontroller:
men hvis du tilføjer kontroller til dine nye kontrolområder, vises de ikke i din sides frontend. De skal stadig kodes i skabelonfilerne.
tilføjelse af dine kontrolområder til skabelonfiler
nu tilføjer vi koden for at udskrive kontrolområderne. Hvis du arbejder med dit eget tema, skal du muligvis bare redigere dine eksisterende temaskabelonfiler. Hvis du arbejder med et underordnet tema (eller dit tema ikke allerede har de relevante skabelonfiler), skal du oprette nye filer.
lad os starte med den udvidede sideskabelonfil, da dit tema ikke har det på nogen måde.
Opret en ny fil i din temamappe. Jeg kalder min sideudbredt.php. Åbn den fil, og tilføj den til den:
dette fortæller, at det er en brugerdefineret sideskabelon. Hvis du vil vide mere om dem, så tjek vores detaljerede guide.
Bemærk: Brug ikke sideomdannet som dit filnavn. Dette skyldes, at page-er et reserveret suffiks i ordtryk. Brug en understregning i stedet for en bindestreg, eller bare undgå at bruge side i starten helt, hvis du foretrækker det.
nu under den kommenterede tekst, Kopier alt fra dit temas (eller overordnede temas) side.php-fil. Et alternativ er at lave en kopi af filen og tilføje den kommenterede tekst, det er op til dig.
du kan nu vælge denne skabelon, når du redigerer en side på din side:
Vælg det til en af dine sider, så du kan prøve kontrollerne. Her er min side:
det ser ikke meget spændende lige nu, da jeg ikke har tilføjet kontrolområderne til skabelonfilen. Lad os gøre det.
i din skabelonfil skal du tilføje denne kode umiddelbart over sideindholdet for området kontrol over indholdet ovenfor:
dette kontrollerer, om kontrolområdet er udfyldt ved hjælp af det unikke ID, du oprettede for kontrolområdet, da du registrerede det i din funktionsfil. Hvis det er blevet udfyldt, udsender det indholdet af kontrolområdet.
Tilføj nu kontrolområdet under indholdet. Efter dit indhold (og inde i ethvert omsluttende element) skal du tilføje dette:
Gem din sideskabelonfil.
her er den fulde kode for min sideskabelonfil, så du kan se, hvor kontrolområderne før og efter sløjfen:
nu for at teste det ud. Jeg har tilføjet en kontrol til hvert af de nye kontrolområder:
og Sådan ser de ud på min side:
så det er den brugerdefinerede sideskabelon, der er oprettet. Nu skal du redigere de to andre sideskabelonfiler (eller oprette dem om nødvendigt). Følg disse trin:
- hvis du arbejder med et underordnet tema, skal du oprette en fil kaldet kategori.php. Kopier indholdet af kategorien.php-fil fra dit overordnede tema (hvis det har en) eller arkivet.php-fil (eller indeks.php hvis det ikke har det).
- hvis du ikke arbejder med et underordnet tema, men dit tema ikke har en kategori.php-fil, lav en ved at kopiere arkivet.php-fil (eller hvis du ikke har en af dem, indekset.php-fil).
- Tilføj kontrolområdet over indholdet i din kategoriarkivfil – igen umiddelbart før sløjfen.
her er koden for kontrolområdet:
gentag nu dette for den enkelte skabelon:
- Opret et enkelt indlæg.php-fil, hvis dit tema ikke har en (eller du bruger et underordnet tema). Kopier indholdet fra dit overordnede temas single-post.php fil ind i det, eller fra den næste skabelon fil op i skabelonen hierarki (enkelt.php, ental.php eller indeks.php).
- Tilføj igen kontrolområdet – denne gang efter indholdet.
her er koden:
nu, hvis du tilføjer kontroller, vises de på din side. Her er min, der viser en liste over de seneste indlæg efter et enkelt indlæg:
tilføjelse af kontrolområder til skabeloner giver dig fleksibilitet
kontrolområder gør det muligt for dit temas brugere at tilføje ekstra indhold uden at skulle skrive kode. Men de er ikke kun til sidebjælken. Tilføjelse af ekstra kontrolområder til dine skabelonfiler giver dig målrettede områder på din side, som du kan tilføje kontroller til, med fin kontrol over, hvor de vises.
du kan tage disse eksempler yderligere, hvis du vil, tilføje kontrolområder til alle dine filer eller endda bruge forskellige versioner af sidebjælken.php-fil til forskellige indholdstyper. Verden er din østers!