Înțelegerea și lucrul cu taxonomii și termeni în WordPress

Taxonomiile sunt ceea ce ia WordPress dincolo de o platformă de bloguri simple și în domeniul unui CMS. 

Dar cum sunt stocate în baza de date?

Taxonomiile și termenii sunt o puternică caracteristică WordPress care vă permite să adăugați mult mai multă flexibilitate site-urilor dvs. Acestea sunt legate de alte două tipuri de conținut: postări și linkuri, iar structura bazei de date înseamnă că aceasta este o relație unu-la-multe, în cazul în care o postare poate avea mai mulți termeni în mai multe taxonomii și un termen poate fi atribuit mai multor postări sau Link-uri.

Voi începe prin definirea lor, ca și în multe lucruri în WordPress, terminologia poate fi confuză!

Definiții

taxonomii

O taxonomie este un sistem de clasificare sau clasificare a lucrurilor, în mod normal ierarhic. Cea mai cunoscută taxonomie este taxonomia Linnean care este folosită pentru a clasifica lucrurile vii.

În WordPress, taxonomiile sunt folosite pentru a vă clasifica datele și a le grupa în seturi și subseturi.

WordPress vine cu trei taxonomii construite în:

  • categorie
  • etichetă
  • link categorie

Categoriile și etichetele sunt asemănătoare cu postările și paginile în care sunt aceleași tipuri de conținut (taxonomii), dar se comportă diferit în mod prestabilit, în care categoriile sunt ierarhice și etichetele nu sunt.

Taxonomia categoriei de link-uri funcționează în mod similar cu etichetele și ar putea fi teoretic folosită pentru orice tip de obiect, dar în mod implicit nu este afișată în ecranul de editare post și se află în ecranul de editare a legăturilor dacă au fost activate link-uri.

De asemenea, puteți adăuga cât mai multe taxonomii suplimentare pe care le doriți folosind taxonomii personalizate. Acestea se comportă apoi în mod similar cu categoriile și etichetele și au termeni. Fiecare taxonomie are apoi același statut ca oricare dintre taxonomiile încorporate. Acest lucru este similar într-un fel într-o comparație între postări și tipuri de posturi personalizate.

Termeni

Fiecare taxonomie va conține termeni pe care îi folosiți pentru a sorta datele. O categorie este doar un termen în taxonomia categoriei, iar o etichetă este un termen în taxonomia tagurilor. Când creați taxonomii, veți crea apoi termeni pentru taxonomiile dvs. fie prin intermediul tabloului de bord WordPress, fie utilizând funcția wp_insert_term ().

Termenii pot fi foarte puternici atunci când sunt combinați cu interogări personalizate: puteți crea fișiere șablon personalizate în temele sau pluginurile dvs. pentru a afișa postări cu mai mulți termeni, sortați după termeni, identificați termeni în taxonomii și multe altele.

Cum WordPress stochează taxonomii și termeni

Așa cum am descris în tutorialul relațiilor dintre date, WordPress folosește o relație multi-la-multe. Această relație este creată utilizând trei tabele:

  • wp_term_relationships
  • wp_term_taxonomy
  • wp_terms

Aceste tabele sunt prezentate mai jos, împreună cu tabelele la care sunt conectate, wp_posts și wp_links:

Să aruncăm o privire la fiecare dintre mese și cum funcționează.

Tabelul wp_terms

wp_terms tabela stochează toți termenii individuali pentru categoriile dvs., etichete, categorii de linkuri și taxonomii personalizate. Are doar patru domenii:

  • term_id este ID-ul unic pentru termen
  • Nume
  • melc
  • term_group este un câmp care nu este folosit în prezent de WordPress, astfel încât să îl puteți ignora în siguranță.

Tabelul wp_term_taxonomy

wp_term_taxonomy tabelul stochează mai multe date despre termeni, precum și despre taxonomiile din care fac parte. Are șase domenii:

  • term_taxonomy_id stochează un ID pentru înregistrare în acest tabel
  • term_id reprezintă ID-ul termenului, legat de înregistrarea sa în wp_terms
  • taxonomie este numele taxonomiei în care se află termenul
  • Descriere
  • mamă se referă la termenul părinte al termenului, dacă taxonomia este ierarhică și are una
  • numara este numărul de postări cu termenul

În multe instalații WordPress, va fi o înregistrare în wp_term_taxonomy tabel pentru fiecare termen în wp_terms tabel, dar în unele cazuri veți avea mai mult de o înregistrare pentru fiecare termen. Acest lucru se întâmplă atunci când creați doi termeni cu același nume și cu slug în diferite taxonomii și înseamnă că ați putea crea o interogare pentru a afișa postări cu acest termen în mai multe taxonomii.

Acest lucru înseamnă că relația dintre aceste două tabele este una-la-multe: o înregistrare în wp_terms tabelul poate fi conectat la mai multe înregistrări din wp_term_taxonomy tabel, dar fiecare înregistrare în wp_term_taxonomy este legat numai de o înregistrare în wp_terms.

Tabelul wp_term_relationships

wp_term_relationships tabel este crucială în crearea relației multiple dintre obiecte și termeni. Are doar trei domenii:

  • object_id este legată de POST_ID în wp_posts tabelul sau LINK_ID în wp_links masa
  • term_taxonomy_id este legat de același câmp în wp_term_taxonomy masa
  • term_order este ordinea în care termenii au fost adăugați unui obiect. Aceasta este utilizată numai dacă ați specificat că argumentul de sortare este adevărat când ați înregistrat taxonomia - valoarea implicită este falsă și valoarea implicită pentru acest câmp este 0.

Deoarece fiecare obiect poate fi legat de mai multe înregistrări din wp_term_relationships tabel, și așa poate fiecare termen, acest lucru creează relația de la mulți la mulți.

rezumat

Relația dintre obiecte (de ex. Postări și linkuri) și termeni este una foarte puternică, parțial deoarece este singura relație multi-la-multe folosită de WordPress. 

Înțelegerea modului în care funcționează această relație și unde sunt stocate datele cheie vă va ajuta să înțelegeți cum funcționează taxonomiile și termenii și să utilizați funcțiile asociate acestora.

Cod