Cum funcționează cadrele tematice

Tematica Cadrelor poate fi extrem de puternică. Pentru utilizatorii WordPress non-tehnici, ei fac posibilă crearea unui site unic, care pare să ruleze o temă personalizată, iar pentru dezvoltatorii WordPress vă pot ajuta să aplicați principiul DRY (Do not Repeat Yourself) și să vă dați posibilitatea construi rapid site-uri personalizate.

Dacă ați folosit un cadru terță parte pentru o perioadă de timp și ați devenit frustrați de codul umflat sau de lipsa de flexibilitate sau doriți doar să aveți control complet asupra codului dvs., atunci construirea propriului cadru tematic ar putea fi cea mai bună abordare.

În această serie, veți învăța cum să vă creați propriul cadru tematic WordPress pe care îl puteți utiliza pentru a construi site-uri pentru dvs. sau pentru clienții dvs. sau chiar pentru alți utilizatori. Veți lucra prin etapele implicate în crearea temei părinte care formează baza cadrului dvs., adăugând funcții suplimentare, cârlige și multe altele. Veți învăța, de asemenea, cum să le folosiți în temele și pluginurile pentru copii și cum să vă publicați codul.

Dar, înainte de a începe, trebuie să știți cum funcționează cadrele tematice și ceea ce le face diferite să fie o temă parentală standard.

Am petrecut timp dezvoltând două cadre tematice pentru a fi utilizate pe două categorii de site-uri ale clienților, dezvoltând și îmbunătățind-le în timp, și am lucrat și cu unele dintre cadrele tematice ale părților terțe. Din experiența mea, un cadru tematic are câteva caracteristici principale:

  • Este alcătuită dintr-o temă părinte concepută pentru a fi utilizată cu temele copiilor. În unele cazuri, tema mamă poate funcționa și ca temă autonomă, dar în altele tema parentală funcționează numai în legătură cu temele copilului - WordPress Codex le definește ca "Teme de bază / inițiale" și, respectiv, "Biblioteci de coduri".
  • Acesta include cârlige și funcții care pot fi puse în aplicare de teme și pluginuri pentru copii. Tema dvs. cadru este baza unui întreg ecosistem cu care veți lucra și care include plug-in-urile care se vor cupla în cadrul dvs..
  • Dacă este conceput pentru a fi accesat de utilizatori care nu sunt codificați, acesta va include pagini cu opțiuni tematice care permit utilizatorilor să personalizeze tema în funcție de nevoile lor. Acestea pot fi extinse, încorporând design, aspect, funcții, conținut și multe altele. În unele cazuri, funcționalitatea poate fi furnizată prin Theme Customizer.
  • Poate include mai multe domenii widget, astfel încât utilizatorii non-tehnici pot adăuga conținut sau cod prin widget-uri (inclusiv widget-uri adăugate de plugin-uri pe care le scrieți în mod specific pentru cadru).
  • Poate include și funcționalitatea bibliotecii de script-uri, cum ar fi un slider jQuery sau o căsuță lightbox. În funcție de nevoile dvs. și de cele ale utilizatorilor dvs., este posibil să le includeți în cadru sau să furnizați plugin-uri cu codul care se încadrează în cadrul dvs..
  • Este extensibil, cu cârlige care vă permit să vă extindeți funcționalitatea prin teme sau pluginuri pentru copii.

Primele două dintre punctele de mai sus sunt cele mai fundamentale - fără o temă părinte, nu aveți un cadru tematic. Și o temă părinte fără aceste cârlige și funcții este doar o temă de bază părinte, nu într-adevăr un cadru.

Deci, asta sunt cadrele tematice, dar cum funcționează? Să aruncăm o privire asupra elementelor unui cadru tematic:

  • Tema părinte și temele copilului opțional
  • Cârlige de acțiune și filtru
  • funcţii
  • Opțiuni temă
  • Widget-uri
  • Scripturi
  • Extendability

Teme pentru părinți și copii

Componenta principală a unui cadru tematic este tema părintelui. Acest lucru poate fi proiectat în unul din două moduri:

  • Ca temă de pornire, care poate funcționa pe cont propriu, poate cu personalizarea prin intermediul unui ecran de opțiuni tematice sau al personalizării temelor. Exemplele acestora includ Atahualpa și Thematic. Ambele pot fi folosite ca teme independente fără utilizarea temelor copilului.
  • Ca o fundație care urmează să fie adăugată de către o temă copil, fără de care tema nu va conduce în mod eficient un site. Exemplele includ Core Hybrid și Genesis. Acestea vor include codul de bază pe care l-ați găsi în mod obișnuit într-o temă, împreună cu o serie de cârlige și funcții care pot fi utilizate de temele copilului și de pluginuri. Toate acestea conțin un API pentru cadrul.

Fiind una dintre principalele caracteristici ale cadrelor tematice este principiul DRY, tema părinte este probabil să utilizeze părțile șablonului și să includă fișiere ori de câte ori este posibil, ceea ce înseamnă că puteți accesa același cod în mai multe locații din tema dvs. Acest lucru facilitează, de asemenea, suprascrierea codului în temele copilului dvs., deoarece creați pur și simplu o parte de șablon de înlocuire sau includeți un fișier.

Nu voi explica conceptul de temă părinte și copil aici, așa cum este acoperit de acest tutorial pe temele copilului. Multe cadre tematice vin cu o serie de teme pentru copii, pentru a le sprijini, în timp ce cu altele aveți nevoie să vă dezvoltați propria. 

Dacă vă dezvoltați propria dvs., aș recomanda crearea a cel puțin o temă "starter" pentru copii, pentru a evita repetarea activității implicate în stabilirea unui proiect pentru fiecare proiect: puteți decide să creați mai multe teme pentru copii ca bază pentru diferite tipuri de proiecte , de exemplu teme pentru copii pentru bloguri și pentru site-uri care nu sunt pe blog.

Cârlige de acțiune și filtru

Un cadru tematic va include o serie de cârlige pentru teme și plugin-uri pentru copii în care se adaugă un cod personalizat sau care modifică modul în care se comportă tema:

  • Cârligele de acțiune vor apărea în mai multe locuri din cod, permițându-vă să adăugați codul la fișierele șablon prin intermediul funcțiilor codificate în cadrul care pot fi suprascrise de teme copil sau prin funcțiile pe care le adăugați la teme sau pluginuri pentru copii. Cadrul tematic propriu folosește pe scară largă cârligele de acțiune, oferindu-le în toate fișierele de șabloane pentru a permite utilizatorilor să scadă conținutul, cum ar fi zone widget, detalii de contact, butoane de apel la acțiune și cod specific site-ului oriunde este necesar.
  • Cârligele de filtrare pot fi folosite pentru a modifica modul în care se comportă un site care utilizează o temă copil sau un anumit plugin, de exemplu, personalizarea buclelor, modificarea conținutului static și multe altele. Orice text static (sau un cod apelat din afara site-ului dvs.) ar trebui să fie înfășurat într-un filtru, astfel încât să poată fi modificat de temele copilului, dacă este necesar.

Merită să țineți ceva timp să luați în considerare ce cârlige doriți să includeți într-un stadiu incipient, astfel încât să știți ce conținut să includeți prin intermediul unui cârlig și ce să codificați direct în fișierele șablonului. Veți vedea acest lucru în următoarea parte a acestei serii.

funcţii

Cadrul dvs. poate include, de asemenea, o serie de funcții. Unele dintre acestea se vor cupla în acțiunea și cârligele de filtrare pe care le-ați definit deja, în timp ce altele vor fi funcții precum etichetele de șablon pe care temele copilului le pot folosi. 

Dacă aveți funcții personalizate pe care le utilizați pe un număr de site-uri client, merită să le adăugați în cadrul dvs. Nu trebuie să activați toate funcțiile: puteți activa o funcție din tema părinte utilizând o funcție ADD_ACTION () funcția în site-ul copilului.

Opțiuni temă

Opțiunile pentru opțiunile tematice reprezintă un plus de utilitate pentru orice temă complexă, dar vor fi deosebit de utile pentru cadrele tematice concepute pentru utilizatorii non-tehnici. Principalele cadre tematice includ toate ecranele opțiunilor tematice din secțiunea de administrare proprie, cu opțiuni care includ activarea și dezactivarea funcțiilor de comutare, modificarea aspectului, adăugarea conținutului și modificarea elementelor de design precum culorile, imaginile de fundal, fonturile și imaginile de antet.

Puteți alege să utilizați instrumentul de personalizare a temelor pentru multe dintre opțiunile dvs., ceea ce are avantajul de a lăsa utilizatorilor să vadă modificările pe care le fac. Am luat această abordare pentru tema Edupress, pe care am dezvoltat-o ​​pentru site-urile școlare cu Mark Wilkinson.

Domenii widget

Indiferent dacă alegeți să adăugați o serie de zone widget va depinde de publicul pentru cadrul dvs.: dacă doar dvs. sau o mică echipă de dezvoltatori veți lucra cu tema, este posibil să nu adăugați zone widget peste bara laterală standard și subsol zone.

Dar dacă cadrul dvs. va fi utilizat de utilizatori non-tehnici, le puteți oferi o mai mare flexibilitate prin înregistrarea mai multor zone widget în diferite locații din tema dvs. Pe lângă bara laterală și subsolul normală, este posibil să înregistrați și zonele widget în antet, înainte și / sau după conținutul și sub subsol.

Cadrul tematic pe care îl folosesc pentru site-urile clientului meu include patru zone widget în subsolul paginii: tema verifică care dintre acestea sunt populate și adaugă clase CSS în mod corespunzător, astfel încât zonele widget populare vor ocupa fiecare lățimea corespunzătoare a paginii.

Zonele widget-urilor dvs. pot fi codate direct în fișierele șablonului dvs. sau puteți decide (ca mine) să le adăugați prin cârlige de acțiune în locurile relevante de pe site-ul dvs. Aceasta înseamnă că pot fi suprascrise în teme copil, fie prin zone de widget-uri alternative, fie prin cod personalizat.

Scripturi

Dacă un script dat este probabil să fie utilizat de un număr de site-uri construite pe cadrul dvs. sau dacă utilizatorii dvs. vor fi non-tehnici și doriți să oferiți opțiuni suplimentare, puteți decide să includeți anumite scripturi în cadrul dvs., cum ar fi slider sau script lightbox. Acest lucru poate salva utilizatorii care trebuie să instaleze pluginuri suplimentare, dar are dezavantajul de a bloat codul dacă aceste scripturi nu sunt necesare.

Din nou, acest lucru va depinde de publicul dvs. și de necesitățile sale anticipate: dacă lucrați doar cu cadrul, aș recomanda dezvoltarea (sau identificarea) pluginurilor cu aceste scripturi și utilizarea acestora atunci când aveți nevoie.

Dacă includeți scripturi, merită să includeți o opțiune de activare și dezactivare pe ecranul cu opțiuni tematice.

Extendability

Dacă cadrul dvs. va fi util pentru o serie de site-uri acum și în viitor doriți să fie extensibil. Tema părinte care formează nucleul cadrului este doar inima unui ecosistem pe care îl folosiți voi și utilizatorii temei pentru a adăuga opțiuni suplimentare și putere site-urilor lor. Aceasta va include:

  • Temele pentru copii sau temele inițiale - lista acestora poate crește foarte bine în timp, mai ales dacă vă publicați tema publicului
  • Plugin-uri concepute pentru a lucra în mod specific cu cadrul dvs., adesea activat prin cârlige specifice cadrului.

De asemenea, poate include și documentația pentru alți dezvoltatori care doresc să lucreze cu cadrul dvs.: majoritatea cadrelor tematice majore apar cu o documentație extensivă pe care dezvoltatorii o pot folosi fie pentru a personaliza site-urile lor construite pe cadru, fie pentru a crea teme sau plugin-uri pentru copii pentru alți utilizatori ai cadru pentru acces.

rezumat

Cadrele tematice sunt un instrument puternic în arsenalul dezvoltatorului WordPress. După cum am văzut, ele sunt vitale pentru mii de proprietari de site-uri non-tehnice care le folosesc pentru a crea site-uri personalizate WordPress. Dar ele sunt, de asemenea, un instrument excelent pentru orice dezvoltator care va crea mai multe site-uri, fie pentru uz personal, fie pentru clienți. 

Cadrele tematice au un număr de caracteristici care le dau acea putere: ele sunt extensibile și flexibile și fac mai ușor pentru dvs. sau utilizatorii dvs. să creeze site-uri personalizate utilizând temele copilului și să acceseze funcțiile și cârligele furnizate de cadrul dvs..

După ce ați analizat modul în care funcționează cadrul tematic, în următoarea parte a acestei serii veți identifica ce cadru trebuie să faceți și la cine trebuie să lucrați, ceea ce vă va ajuta să decideți asupra celei mai potrivite abordări de dezvoltare.

Cod