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ă!
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:
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.
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.
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ă.
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 termenNume
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ță. 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 tabelterm_id
reprezintă ID-ul termenului, legat de înregistrarea sa în wp_termstaxonomie
este numele taxonomiei în care se află termenulDescriere
mamă
se referă la termenul părinte al termenului, dacă taxonomia este ierarhică și are unanumara
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
.
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
masaterm_taxonomy_id
este legat de același câmp în wp_term_taxonomy
masaterm_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.
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.