Hvordan temarammer fungerer egentlig

Tema Rammer kan være ekstremt kraftig. For ikke-tekniske WordPress-brukere gjør de det mulig å lage et unikt nettsted som ser ut til at det kjører et skreddersydd tema, og for WordPress-utviklere kan de hjelpe deg med å bruke DRY (Do not Repeat Yourself) -prinsippet og gi deg muligheten til å bygge egendefinerte nettsteder raskt.

Hvis du har brukt et tredjeparts rammeverk for en stund og blitt frustrert med den oppblåste koden eller mangel på fleksibilitet, eller du bare vil ha full kontroll over koden din, kan det være den beste tilnærmingen å bygge ditt eget tema rammeverk..

I denne serien lærer du hvordan du lager ditt eget WordPress-tema rammeverk som du kan bruke til å bygge nettsteder for deg selv eller dine kunder, eller til og med slippe for andre brukere. Du vil jobbe gjennom stadiene som er involvert i å skape overordnet temaet som danner grunnlaget for rammen, legger til ekstra funksjoner, kroker og mer. Du lærer også hvordan du kan utnytte disse i barnas temaer og plugins og hvordan du slipper koden din til offentligheten.

Men før du kommer i gang, må du vite hvordan temarammer fungerer, og hva som gjør dem annerledes, danner et vanlig foreldetema.

Jeg har brukt tid på å utvikle to temaer for bruk på to kategorier av kundesider, utvikle og forbedre disse over tid, og jeg har også jobbet med noen av temaene fra tredjeparts temaer. I min erfaring har et temaramme noen hovedtrekk:

  • Den består av et foreldetema designet for bruk med barnemner. I noen tilfeller kan foreldetemaet fungere som et frittstående tema, men i andre fungerer foreldetemaet bare sammen med barnemner - WordPress Codex definerer disse som henholdsvis "Base / Starter Themes" og "Code Libraries".
  • Den inneholder kroker og funksjoner som kan håndteres av barnemner og plugins. Din tema rammeverk er grunnlaget for et helt økosystem du vil jobbe med, og det inkluderer plugins som vil hekte inn i rammen din.
  • Hvis det er utformet for å få tilgang til ikke-kodende brukere, vil det inkludere temaalternativer-sider som gjør at brukerne kan tilpasse temaet etter behovene sine. Disse kan være omfattende, med design, layout, funksjoner, innhold og mer. I enkelte tilfeller kan funksjonalitet leveres via Theme Customizer.
  • Det kan inneholde flere widgetområder, slik at ikke-tekniske brukere kan legge til innhold eller kode via widgets (inkludert widgets lagt til av plugins du skriver spesifikt for rammen).
  • Det kan også inkludere skriptbibliotekets funksjonalitet, for eksempel en jQuery-glidebryter eller lysboks. Avhengig av dine behov og brukerne dine, kan du inkludere disse i rammen eller gi plugins med koden som henger inn i rammen din.
  • Den er uttrekkbar, med kroker som lar deg forlenge funksjonaliteten via barnemner eller plugins.

De to første punktene ovenfor er de mest grunnleggende - uten et overordnet tema, har du ikke et temaramme. Og et overordnet tema uten disse kroker og funksjoner er bare et grunnleggende foreldre tema, egentlig ikke et rammeverk.

Så det er hvilke temarammer, men hvordan fungerer de? La oss ta en titt på elementene i et temaramme:

  • Overordnet tema og valgfrie barnemner
  • Handling og filter kroker
  • funksjoner
  • Temaalternativer
  • widgets
  • scripts
  • strekkbarhet

Foreldre og barn temaer

Hovedkomponenten i et temaramme er foreldetemaet. Dette kan være utformet på to måter:

  • Som et startmål, som kan fungere på egenhånd, kanskje med tilpasning via et tema-skjermbilde eller temaet tilpasser. Eksempler på disse inkluderer Atahualpa og tematisk. Begge disse kan brukes som frittstående temaer uten bruk av barnemner.
  • Som grunnlag for å bli lagt til av et barntema, uten hvilket temaet ikke effektivt vil drive et nettsted. Eksempler inkluderer hybridkjerne og genesis. Disse vil inkludere den grunnleggende koden du normalt vil finne i et tema sammen med en rekke kroker og funksjoner som kan håndteres av barnemner, og også ved plugins. Alt dette omfatter en API for rammen.

Som et av hovedtrekkene til temarammer er DRY-prinsippet, vil ditt foreldetema sannsynligvis gjøre bruk av maldeler og inkludere filer der det er mulig, noe som betyr at du kan få tilgang til samme kode på flere steder i temaet ditt. Dette gjør det også lettere å overstyre koden i barnetemaene dine, da du bare oppretter en erstatningsmalldel eller inkluderer fil.

Jeg skal ikke forklare begrepet foreldre og barnemner her som det er dekket i denne opplæringen om barnemner. Mange temarammer kommer med en rekke barnemner for å støtte dem, mens med andre må du utvikle din egen. 

Hvis du utvikler din egen, vil jeg anbefale å skape minst ett "startbilde" barntema for å unngå å gjenta arbeidet med å sette opp en opp for hvert prosjekt: Du kan bestemme å lage flere barnemner som grunnlag for ulike typer prosjekter , for eksempel barnemner for blogger og for nettsteder utenfor bloggen.

Handling og filter kroker

Et tema rammeverk vil inkludere en rekke kroker for barn temaer og plugins å koble til når du legger til tilpasset kode eller endre måten temaet oppfører seg på:

  • Handlingskroker vil vises flere steder i koden, slik at du kan legge til kode i malfiler via funksjoner kodet i rammen som kan overstyres av barnemner, eller via funksjoner som du legger til temaene dine eller pluginene til barnet ditt. Mitt eget tema rammeverk gjør omfattende bruk av handling kroker, gi dem i alle malfiler for å la brukerne slippe i innhold som widget områder, kontaktdetaljer, ring til handling knapper og nettstedspesifikke kode hvor som helst det er nødvendig.
  • Filterkroker kan brukes til å endre hvordan et nettsted som bruker et barntema eller en bestemt plugin, oppfører seg, for eksempel tilpassing av looper, endring av statisk innhold og mer. Enhver statisk tekst (eller kode kalt fra utenfor nettstedet ditt) bør pakkes inn i et filter, slik at det kan endres av barnemner om nødvendig.

Det er verdt å ta litt tid å vurdere hvilke kroker du vil inkludere på et tidlig stadium, slik at du vet hvilket innhold som skal inkluderes via en krok og hva du skal kode inn i malfilene dine direkte. Du ser på dette i neste del av denne serien.

funksjoner

Rammen din er også sannsynlig å inkludere en rekke funksjoner. Noen av disse vil koble inn i handlingen og filterkrokene du allerede har definert, mens andre vil være funksjoner som malemerker hvilke barnemner kan gjøre bruk av. 

Hvis du har noen tilpassede funksjoner du bruker på en rekke kundesider, er det verdt å legge dem til rammen. Du trenger ikke å aktivere alle dine funksjoner: Du kan aktivere en funksjon fra foreldetemaet ved hjelp av en ADD_ACTION () fungere på ditt barns nettsted.

Temaalternativer

Temaalternativer-skjermer er et nyttig tillegg til et komplekst tema, men vil være spesielt nyttig for temarammer designet for ikke-tekniske brukere. De store temarammene alle inkluderer flere temaalternativer-skjermbilder i sin egen admin-seksjon, med muligheter, inkludert byttefunksjoner på og av, endring av layout, legge til innhold og endre designelementer som farger, bakgrunnsbilder, skrifter og headerbilder.

Du kan velge å bruke temaet tilpasser for mange av alternativene dine, som har fordelen av å la brukerne se endringene når de lager dem. Jeg har tatt denne tilnærmingen til Edupress-temaverket, som jeg utviklet for skolesider med Mark Wilkinson.

Widget Områder

Enten du velger å legge til en rekke widgetområder, vil avhenge av publikum for rammen din: Hvis du eller et lite team av utviklere vil jobbe med temaet, kan du ikke legge til noen widgetområder utover standard sidebar og bunntekst områder.

Men hvis rammen din blir brukt av ikke-tekniske brukere, kan du gi dem mye mer fleksibilitet ved å registrere flere widget-områder på forskjellige steder i temaet ditt. I tillegg til den normale sidebar og bunnteksten kan du også registrere widget-områder i overskriften, før og / eller etter innholdet og under bunnteksten.

Temaverket som jeg bruker for klientnettstedene mine, inneholder fire widgetområder i bunnteksten: temaet sjekker hvilke av disse er befolket og legger til CSS-klasser tilsvarende slik at de befolket widgetområdene hver vil ta opp den aktuelle bredden på siden.

Widgetområdene dine kan være kodet direkte inn i malfiler, eller du kan bestemme (som jeg gjør) for å legge dem til via handlekroker på de relevante stedene på nettstedet ditt. Dette betyr at de kan overstyres i barnemner, enten ved alternative widgetområder eller ved tilpasset kode.

scripts

Hvis et gitt skript sannsynligvis vil bli brukt av en rekke nettsteder som er bygget på rammen din, eller hvis brukerne dine vil være ikke-tekniske og du vil gi ekstra alternativer, kan du bestemme deg for å inkludere visse skript i rammen, for eksempel en skyvekontroll eller lightbox-skript. Dette kan lagre brukere som trenger å installere ekstra plugins, men har ulempen med kodeblokk hvis disse skriptene ikke er nødvendig.

Igjen vil dette avhenge av publikum og forventede behov: Hvis det bare er du som arbeider med rammen, vil jeg anbefale å utvikle (eller identifisere) programtillegg med disse skriptene og bruke dem når du trenger å.

Hvis du inkluderer skript, er det verdt å inkludere et aktiverings- og deaktiveringsalternativ på skjermbildet for temaalternativer.

strekkbarhet

Hvis rammen din skal være nyttig for en rekke nettsteder nå og i fremtiden, vil du at den skal utvides. Overordnet temaet som danner kjernen i rammen er bare hjertet av et økosystem som du og dine tema brukere vil tappe inn for å legge til ekstra alternativer og strøm til deres nettsteder. Dette vil inkludere:

  • Barnemner eller forrettstemaer - listen over disse kan godt vokse over tid, spesielt hvis du slipper temaet ditt for offentligheten
  • Plugins designet for å jobbe spesielt med rammen din, ofte aktivert via rammespesifikke kroker.

Det kan også inkludere dokumentasjon for andre utviklere som ønsker å jobbe med rammene dine: De fleste av de store temarammene leveres med omfattende dokumentasjon som utviklerne kan bruke til å tilpasse sine sider bygget på rammen eller å lage barnemner eller plugin for andre brukere av ramme for tilgang.

Sammendrag

Tema rammer er et kraftig verktøy i WordPress utviklerens arsenal. Som vi har sett, er de avgjørende for tusenvis av ikke-tekniske nettstedseiere som bruker dem til å lage egendefinerte WordPress-nettsteder. Men de er også et flott verktøy for enhver utvikler som vil skape flere nettsteder, enten for personlig bruk eller for kunder. 

Temaverkene har en rekke egenskaper som gir dem den kraften: De er uttrekkbare og fleksible, og gjør det enkelt for deg eller brukerne å lage tilpassede nettsteder som bruker barnemner og tilgang til funksjonene og kroker som er gitt av rammen din.

Etter å ha sett på hvordan rammebetingelser fungerer, vil du i neste del av denne serien identifisere hva rammen din må gjøre og hvem den trenger å jobbe for, noe som vil hjelpe deg med å bestemme deg for den mest hensiktsmessige utviklingsmetoden.