Introducere în ierarhia șabloanelor WordPress

Publicat: 2019-12-11

Una dintre întrebările cheie pe care utilizatorii WordPress și le pun la un moment dat în viață este următoarea: cum reușesc temele WordPress să arate pagini diferite în funcție de conținutul pe care îl vedem?

Întrebarea, pe lângă că este total legitimă, este foarte interesantă. WordPress este capabil să identifice conținutul pe care urmează să îl redeze și, în funcție de tipul acestuia, să folosească un șablon sau altul. Temele WordPress nu sunt altceva decât un set de șabloane specifice pentru fiecare tip de conținut, cu ceva JavaScript pentru elemente dinamice și CSS pentru stiluri și culori.

Perfect, dar... cum funcționează de fapt șabloanele WordPress? Acesta este ceea ce vom vedea pas cu pas pe parcursul acestei postări.

Înainte de a începe, totuși, permiteți-mi să vă arăt o imagine cu răspunsul la această întrebare:

Ierarhia șabloanelor WordPress
Ierarhia șabloanelor WordPress.

Aceasta este ierarhia șablonului WordPress. Puteți găsi toate informațiile despre acesta în Codexul WordPress, documentația oficială. Puteți chiar să interacționați cu această ierarhie pe acest site minunat.

Practic, WordPress folosește o ierarhie de șabloane pentru a-și reda conținutul. Adică, WordPress caută în tema pe care o aveți activă pentru un anumit fișier PHP. Dacă există, WordPress redă conținutul folosind acel fișier, pe care îl numim șablon. Dacă nu, WordPress caută următorul șablon cel mai generic din ierarhie. Dacă există, WordPress îl folosește. În caz contrar, WordPress caută următorul șablon în ierarhie... și așa mai departe. Dacă WordPress nu găsește un anumit fișier șablon în tema ta, folosește fișierul implicit index.php , cel mai generic dintre toate șabloanele.

Acum, să aprofundăm mai multe detalii în ierarhia șablonului unora dintre cele mai comune conținut WordPress.

Șabloane de pagină

Să vedem șabloanele pe care WordPress le folosește pentru randarea paginilor și a tipurilor de conținut simple.

Postări și tipuri de postări personalizate

WordPress analizează următoarele fișiere PHP de pe tema dvs. pentru a reda o postare de blog sau un tip de postare personalizat:

  1. single-{post-type}-{slug}.php : dacă doriți un șablon specific pentru o anumită postare sau un anumit tip de postare, trebuie să creați acest fișier PHP în tema dvs. Numele său include numele tipului de postare ( {post-type} ), care poate fi post sau orice altceva ( produs , dacă utilizați WooCommerce). Și trebuie să tastați și slug-ul sau permalink, numiți-l așa cum doriți, în numele șablonului. De exemplu, dacă vreau să folosesc un anumit șablon pentru această postare, ar trebui să creez fișierul single-post-introduction-to-the-wordpress-template-hierarchy.php .
  2. single-{post-type}.php : dacă dorim să afectăm tot conținutul unui anumit tip de postare (toate postările sau toate produsele), vom folosi acest șablon, al cărui nume include doar numele tipului de postare.
  3. single.php : WordPress folosește acest șablon pentru a reda orice conținut unic (o anumită postare, un anumit produs etc.).
  4. singular.php : acesta este un alt șablon de nivel superior pentru a reda conținut unic de orice fel.
  5. index.php : dacă nu s-a găsit niciuna dintre cele de mai sus, WordPress folosește acest șablon generic pentru a vă reda conținutul.

Amintiți-vă că în directorul de teme WordPress aveți la dispoziție mii de exemple de teme WordPress. Vă recomand să descărcați unul și să încercați, ca exercițiu de învățare, să inspectați fișierele PHP și să identificați șabloanele pe care tocmai le-am prezentat.

Procedând astfel, puteți înțelege ce șabloane folosesc în ierarhia șabloanelor WordPress și puteți vedea ce conținut are fiecare dintre aceste șabloane. Fără îndoială, dacă doriți să aflați despre temele WordPress, acesta este ceva obligatoriu de făcut. În plus, este gratuit!

Pagini obișnuite

Ca și în cazul postărilor și al altor tipuri de postări, WordPress folosește o ierarhie de șabloane pentru a reda paginile:

  1. Șablon selectat: dacă din caseta de atribute ale paginii atunci când editați o pagină selectați un anumit șablon, acesta are întotdeauna prioritate față de toate celelalte. Puteți învăța să creați șabloane personalizate aici.
  2. page-{slug}.php : dacă doriți ca o anumită pagină să aibă propriul șablon, creați acel șablon într-un fișier PHP care are slug-ul paginii în nume.
  3. page-{id}.php : puteți utiliza direct ID-ul paginii WordPress în care este aplicat șablonul.
  4. page.php : acest șablon se aplică tuturor paginilor WordPress, cu excepția cazului în care unul dintre șabloanele anterioare din ierarhie a fost deja aplicat.
  5. singular.php : șablonul singular este șablonul implicit pentru toate paginile, postările, produsele și așa mai departe. Acest șablon va fi aplicat rar, deoarece majoritatea temelor din WordPress includ deja un șablon page.php .
  6. index.php : ca întotdeauna, acesta este șablonul de rezervă implicit al WordPress.

Acum încercați să verificați din nou tema pe care ați descărcat-o înainte și veți vedea că acum înțelegeți puțin mai mult celelalte fișiere care apar acolo. Cu siguranță acum puteți identifica fișierele PHP pentru șabloanele de pagină.

Pagini speciale

În WordPress există și alte pagini speciale care folosesc, de asemenea, șabloane specifice pentru a reda conținut. Un exemplu în acest sens este pagina principală a site-ului web. Amintiți-vă că pagina principală este selectată în Setări WordPress, în submeniul Citire . Următoarea ierarhie a șablonului este utilizată pentru pagina respectivă:

  1. front-page.php : dacă utilizați o pagină statică ca pagină principală în WordPress, va încerca mai întâi să aplice șablonul front-page.php .
  2. home.php : dacă șablonul anterior nu este găsit, WordPress încearcă să folosească acest șablon. Acest șablon este folosit și dacă, în loc să selectați o pagină statică ca pagină principală, ați selectat opțiunea de a afișa cele mai recente postări.
  3. index.php : din nou, șablonul implicit este întotdeauna prezent.

Pagina care arată rezultatele căutării WordPress este, de asemenea, o pagină specială care poate avea propriul șablon. Pentru a face acest lucru, puteți utiliza șablonul search.php . Dacă tema dvs. nu o definește, index.php va fi folosit ca de obicei.

În cele din urmă, pagina afișată atunci când site-ul dvs. returnează o eroare 404 poate fi configurată și cu un șablon WordPress specific. Trebuie să creați fișierul 404.php în tema dvs. și apoi acest șablon va fi aplicat.

Șabloane pentru arhive

Până acum am văzut șabloane pentru un singur conținut (cu excepția cazului rezultatelor căutării). Dar în WordPress există și arhive, care ar putea reda mai mult de un element într-o pagină. Să vedem ce ierarhie de șabloane folosește WordPress în acest caz.

Categorii și etichete

WordPress folosește următoarea ierarhie de șabloane pentru categorii:

  1. category-{slug}.php : acest șablon este folosit pentru a reda lista de conținut (de obicei postări) care aparțin unei anumite categorii. În special, va fi folosit la randarea categoriei al cărei slug apare în numele fișierului PHP.
  2. category-{id}.php : dacă preferați să utilizați ID-uri de categorie în loc de slug-uri, puteți face acest lucru. De exemplu, dacă doriți să aplicați un șablon la categoria 13, creați fișierul șablon cu numele category-13.php .
  3. category.php : șablonul implicit pentru toate categoriile.
  4. archive.php : acesta este cel mai generic șablon pentru arhive în WordPress.
  5. index.php : din nou, dacă tema dvs. nu include un șablon mai specific, WordPress va utiliza implicit acest fișier.

Următoarea ierarhie a șablonului este utilizată pentru etichete:

  1. tag-{slug}.php : dacă eticheta se numește interviu , putem folosi șablonul tag-interview.php în cazul în care dorim să proiectăm un șablon specific pentru acea etichetă în WordPress.
  2. tag-{id}.php : putem defini șablonul și prin ID-ul etichetei.
  3. tag.php : ca și în cazul category.php , acesta este șablonul generic pentru etichete.
  4. archive.php : din nou, acest șablon va fi folosit dacă niciunul dintre cele de mai sus nu există.
  5. index.php : ca întotdeauna, acesta este șablonul alternativ.

Tipuri de postări personalizate și taxonomii personalizate

Dacă avem tipuri de conținut personalizate, putem folosi șablonul archive-{post_type}.php unde post_type este slug -ul tipului de postare personalizat. Aceasta va afișa lista de conținut pentru acel tip de postare.

Pentru taxonomii personalizate, WordPress folosește următoarea ierarhie de șabloane:

  1. taxonomy-{taxonomy}-{term}.php : dacă aveți o taxonomie personalizată numită jocuri video în WordPress și doriți să creați un șablon cu un design specific pentru termenul de sport din acea taxonomie, va trebui să creați fișierul taxonomy-videogames-sports.php pentru a utiliza acel șablon.
  2. taxonomy-{taxonomy}.php : dacă doriți să utilizați același șablon pentru toți termenii taxonomiei, pur și simplu utilizați taxonomy-videogames.php , în exemplul anterior.
  3. taxonomy.php : acesta este șablonul implicit pentru toate taxonomiile.
  4. archive.php : dacă niciunul dintre șabloanele de mai sus nu există, acest lucru se aplică.
  5. index.php : din nou, acesta este șablonul implicit de rezervă.

Cu toate aceste explicații ar trebui să aveți deja tot ce aveți nevoie pentru a crea și identifica șabloane în temele dvs. WordPress.

În concluzie

Înțelegerea ierarhiei șabloanelor WordPress este cheia pentru a putea înțelege temele și chiar pentru a le dezvolta pe ale tale. Nu strică niciodată să arunci o privire la asta și să știi cum funcționează pentru a câștiga încredere atunci când începi să modifici codul PHP al temei pe care o folosești în WordPress.

Există și alte șabloane, dar mai rar utilizate. Oricum, amintiți-vă că puteți oricând să verificați documentația WordPress Codex. Acolo vei gasi tot ce nu a fost explicat aici.

Ce crezi despre toate astea? Încă folosiți șabloane pentru conținutul dvs. WordPress sau construiți deja toate modelele cu blocuri? Nu uitați să-mi lăsați un comentariu mai jos dacă ați ajuns la sfârșitul postării — mi-ar plăcea să știu cum folosiți șabloanele WordPress!

Imagine prezentată de Edvard Alexander Rlvaag pe Unsplash .