Introducerea taxonomiilor personalizate WordPress 3

WordPress 3 completează o serie de lacune importante pentru a fi un sistem serios de gestionare a conținutului. Funcția de taxonomii personalizate, ușor de utilizat, oferă designerilor site-urilor câteva instrumente puternice pentru construirea unei arhitecturi de informații bune. Aflați ce taxonomii sunt, de ce sunt utile și cum să le folosiți în tutorialul de astăzi!


Ce este o taxonomie?

Taxonomiile sunt metode diferite pentru clasificarea lucrurilor.

Taxonomiile sunt metode diferite pentru clasificarea lucrurilor. Acest tutorial folosește un exemplu de postări despre computere desktop diferite, care pot fi clasificate după un număr de criterii distincte, printre care:

  • Suma RAM
  • Dimensiunea hard diskului
  • Viteza procesorului
  • Tipul procesorului
  • Sistem de operare instalat
  • si asa mai departe…

O scurtă istorie a taxonomiilor WordPress

Categorii

Înainte de versiunea 2.3, WordPress avea doar o singură taxonomie generică, numită Categoria, pentru postări. Acest lucru a funcționat bine pentru bloguri, deoarece ați putea crea o categorie de nivel superior denumită "Calculatoare desktop", cu o subcategorie numită "RAM", care poate avea subcategorii precum "Mai puțin de 1 GB", "1 GB", "2 GB la 4 GB "și așa mai departe. O categorie de al doilea copil de computere desktop ar putea fi numită "Sistem de operare", cu subcategorii precum "Windows XP", "Mac OS", "Red Hat", "Ubuntu" și așa mai departe.

Când un sistem vă permite să aveți categorii care pot fi împărțite în subcategorii, o numim structură ierarhică. Cel mai bun lucru pe care l-ați putea face pentru o arhitectură serioasă a site-ului înaintea WordPress versiunea 2.3 a fost crearea unei mari ierarhii de categorii, în care categoriile de nivel superior reprezentau grupe mari de taxonomie.

Etichete

Versiunea 2.3 a WordPress a adăugat un alt tip de taxonomie numită Tag-uri. Deși categoriile sunt de obicei gândite în avans, specifice tipurilor de conținut de pe un site, etichetele oferă o metodă mai liberă și mai improprie de clasificare a conținutului.

De exemplu, atunci când scrieți un post despre un anumit desktop, etichetele permit autorului să introducă unul sau mai multe cuvinte cheie, cum ar fi "jocuri", "tivo", "ventilator zgomotos" și așa mai departe. Este posibil ca aceste cuvinte cheie să nu aibă sens ca categorii la nivel de site, dar să ofere o clasificare suplimentară pentru o postare. Vizitatorii site-ului ar putea apoi să găsească cu ușurință toate postările etichetate cu "ventilator zgomotos" mai târziu. Natura liberă a etichetelor, cu toate acestea, nu ne ajută să construim un sistem solid de clasificare în jurul unor valori cunoscute, cum ar fi tipurile de sisteme de operare sau tipurile de procesoare. Etichetele sunt, de asemenea, unidimensionale, nepermițând nici o structură ierarhică.

Taxonomii personalizate la un singur nivel

Wordpress versiunea 2.8 a făcut posibilă adăugarea schemelor de clasificare personalizată cu doar câteva modificări la codul de pe site-ul dvs. Acest lucru v-a permis să construiți o listă de posibile sisteme de operare, separate de o listă de tipuri de RAM posibile și așa mai departe. Cu toate acestea, nu a permis ca aceste taxonomii personalizate să fie construite într-o ierarhie similară taxonomiei categoriilor generice.

Taxonomii personalizate complet ierarhice

În cele din urmă, versiunea WordPress 3 ne oferă taxonomii personalizate complet ierarhice. Observați modul în care natura ierarhică ne permite să simplificăm taxonomia Sistemului de operare, de exemplu, prin împingerea tuturor diferitelor variante Windows sub o clasificare părinte "Windows". Acest lucru va permite vizitatorilor să vadă toate postările clasificate în orice sistem de operare Windows sau să le permită să fie mai specifice și să vadă numai posturile clasificate în Windows XP, de exemplu.


Crearea unei taxonomii personalizate

Editarea fișierului functions.php al temei

WordPress versiunea 3 nu vă permite să creați taxonomii personalizate din ecranul de administrare. Pentru a defini inițial taxonomiile personalizate fără un plugin, va trebui să adăugați un pic de cod în fișierul functions.php al temei. Acest lucru nu este prea dificil - doar urmați-mi conducerea.

Pentru a adăuga taxonomii personalizate, trebuie să editați fișierul "functions.php" găsit în directorul tematic. De exemplu, folosesc tema implicită "twentyten" care vine cu WordPress 3.0, iar instalarea mea WordPress este într-un director numit "wp". Fișierul meu funcții.php este apoi la:
[Website_root] /wp/wp-content/themes/twentyten/functions.php.


Adăugarea taxonomiilor în cod

Vom rămâne cu exemplul Computer Desktop, adăugând taxonomii separate pentru memoria RAM, hard disk și sistemul de operare. În acest moment, pur și simplu adăugăm taxonomiile, ca și containerele goale. Din fericire, putem adăuga și gestiona diferitele clasificări, cum ar fi "Windows XP", din confortul tabloului de bord al administratorului.


Pasul 1 O funcție pentru a le crea toate

În primul rând, trebuie să construim o funcție care să creeze toate taxonomiile de care avem nevoie. Vom numi funcția "build_taxonomies". Să adăugăm această funcție în partea de jos a fișierului functions.php.

 function build_taxonomies () // codul va merge aici

Pasul 2 Definirea taxonomiilor

Apoi, pentru fiecare taxonomie pe care dorim să o creăm, trebuie să apelăm o anumită funcție WordPress cu parametrii potriviți. Iată funcția și parametrii importanți explicați.

 register_taxonomy ('nume_internal', 'object_type', array ('hierarchical' => true | false, 'label' => true | false));
  • internal_name: Ce va fi numit această taxonomie din interiorul WordPress, în fișierele de date și de șabloane?
  • object_type: Ce tipuri de conținut pot fi clasificate cu această taxonomie? Valorile posibile sunt "postarea, pagina, link-ul" și apoi numele de tipuri de posturi personalizate pe care le vom învăța să le creăm într-un tutorial viitor.
  • Apoi vine o serie de parametri opționali. Vom folosi cele mai importante aici în acest tutorial, dar o listă completă poate fi găsită în pagina Codex funcțională / register_taxonomy Codex. Parametrii pe care îi vom folosi sunt:
  • ierarhic: Dacă este adevărat, această taxonomie are abilități ierarhice, cum ar fi categoriile WordPress. Dacă este "falsă", această taxonomie se comportă mult ca etichetele libere.
  • eticheta: Acesta este numele citit de om folosit în interfața site-ului dvs. pentru a eticheta taxonomia.
  • query_var: Dacă "adevărat", vom putea cere WordPress pentru posturi care depind de selecțiile pentru această taxonomie. De exemplu, am putea căuta toate postările în care taxonomia sistemului de operare a selectat "Windows".
  • rescrie: Dacă "adevărat", WordPress va folosi URL-uri prietenoase atunci când vizualizează o pagină pentru această taxonomie. De exemplu, o pagină care prezintă toate postările cu sistemul de operare "Windows" selectat va fi reprezentată de următorul url: http://domain.com/operating_system/windows

Intrarea noastră specifică pentru adăugarea taxonomiei Sistemului de operare arată astfel:

 register_taxonomy ('operating_system', 'post', array ('hierarchical' => true, 'label' => 'Sistem de operare', 'query_var' => true, 'rewrite' => true));

Continuați și adăugați asta la funcția "build_taxonomies".

Mai multe informatii:

"register_taxonomy" este definit în continuare în codul WordPress.


Pasul 3 Apelarea funcției de creare a taxonomiei

Trebuie să adăugăm încă o linie în fișierul "functions.php" astfel încât funcția "build_taxonomies" să fie executată efectiv. Vom "prinde" funcția "build_taxonomies" la evenimentul "init" prin adăugarea următorului cod:

 add_action ('init', 'build_taxonomies', 0);

Puteți adăuga această linie oriunde, dar în general o adaug peste funcția pe care o sunăm, așa că ar arăta astfel:

 // Codul taxonomiei personalizate add_action ('init', 'build_taxonomies', 0); funcția build_taxonomies () register_taxonomy ('operating_system', 'post', array ('hierarchical' => true, 'label' => 'Sistem de operare', 'query_var' => true, 'rewrite' => true)); 

Mai multe informatii:

Aflați mai multe despre add_action.


Adăugarea de clasificări la noua taxonomie

Odată ce ați adăugat taxonomia "Sistem de operare" la fișierul "functions.php" corect, ar trebui să apară ca un element nou în panoul "Mesaje" din tabloul de bord. Faceți clic pe numele taxonomiei pentru a adăuga și modifica clasificările pe care doriți să le includeți.

Acum, puteți adăuga și edita sisteme de operare la fel cum ați adăuga categorii generice.


Adăugarea de mai multe taxonomii

Dacă doriți să adăugați taxonomiile "RAM" și "Hard Drive" de urmat împreună cu exemplul, trebuie doar să adăugați următoarele în fișierul functions.php:

 register_taxonomy ('ram', 'post', array ('hierarchical' => true, 'label' => 'RAM', 'query_var' => true, 'rewrite' => true)); register_taxonomy ('hard_drive', 'post', array ('hierarchical' => true, 'label' => 'Hard Drive', 'query_var' => true, 'rewrite' => true));

Odată terminat, secțiunea modificată a fișierului functions.php va arăta astfel:

 // Codul taxonomiei personalizate add_action ('init', 'build_taxonomies', 0); funcția build_taxonomies () register_taxonomy ('operating_system', 'post', array ('hierarchical' => true, 'label' => 'Sistem de operare', 'query_var' => true, 'rewrite' => true)); register_taxonomy ('ram', 'post', array ('hierarchical' => true, 'label' => 'RAM', 'query_var' => true, 'rewrite' => true)); register_taxonomy ('hard_drive', 'post', array ('hierarchical' => true, 'label' => 'Hard Drive', 'query_var' => true, 'rewrite' => true)); 

Crearea unei postări utilizând noua dvs. taxonomie

Creați câteva postări noi și veți vedea că noile opțiuni de taxonomie apar în ecranul Editare postare. Selectați toate clasificările pe care le considerați că se aplică postărilor dvs..


Afișarea diferitelor taxonomii ale Postului

Nimic pe care l-am făcut până acum nu poate fi văzut de vizitatorii site-ului dvs. Ne-ar plăcea ca postările să afișeze taxonomiile personalizate în care sunt clasificate, la fel cum articolele le dezvăluie în mod obișnuit categoriile și etichetele.

Pentru a face acest lucru, trebuie doar să facem o simplă adăugire a bucla în anumite fișiere șablon.


Afișarea clasificărilor taxonomice pe paginile individuale

În tema douăzeci și multe altele, categoriile și etichetele unei postări sunt afișate sub textul corpului. Vom adăuga informații taxonomice personalizate, dacă există, chiar înainte de informațiile despre categorii și etichete.

Pentru a face acest lucru, va trebui să editați fișierul șablon "single.php", care este în mod normal apelat pentru a afișa o postare individuală. Fișierul single.php este la: [site_root] /wp/wp-content/themes/twentyten/single.php.


Pasul 1 Găsiți locul potrivit pentru adăugarea de cod

În single.php, găsiți linia cu:

Acest lucru apare chiar înainte de:

În douăzeci, acest div conține categoriile, etichetele, permalink-ul și alte date pentru postarea curentă. Vom plasa informațiile noastre de taxonomie chiar deasupra acestui div.


Pasul 2 Preluați informațiile despre taxonomie despre postarea curentă

Utilizați câteva variabile pentru păstrarea rezultatelor din taxonomia informației și a diferitelor informații despre taxonomie pe care ne-am putea aștepta să le găsim.

 ID, "sistem_operator", "Sisteme de operare): ',', '' ');

Aici numim lista "get_the_term" a funcției WordPress cu următorii parametri:

  • $ Post-> ID : id-ul postului curent.
  • 'sistem de operare' : numele taxonomiei personalizate pe care o verificăm pentru date. Întrebăm dacă postului curent i s-au dat orice clasificări în taxonomia "operațiunea_system".
  • 'Sisteme de operare)' : Dacă ceva este returnat, acesta este șirul pe care l-am dori să îl avem în fața acestuia.
  • "," : În cazul în care se returnează mai multe elemente, acesta este șirul în care ne-am dori să le separăm.
  • " : Dacă se întoarce ceva, acesta este șirul pe care l-am dori să îl avem în spatele acestuia. În acest caz, nu vrem nimic în spatele rezultatului.

Vom face același lucru și pentru celelalte două taxonomii pe care le putem aștepta să conțină date:

 $ ram_list = get_the_term_list ($ post-> ID, 'ram', 'Opțiunea RAM: ',', ','); $ hd_list = get_the_term_list ($ post-> ID, 'hard_drive', 'Opțiunea pentru hard disk: ',', '' ');

Mai multe informatii:

Aflați mai multe despre "get_the_term_list".


Pasul 3 Formați rezultatele din Clasificări, dacă există

Verificați rezultatele în fiecare din cele trei taxonomii posibile. Dacă există, adăugați-le la ieșirea noastră, precum și o linie.

 // Adaugă lista de OS dacă această postare a fost etichetat (ă) dacă ("! = $ Os_list) $ taxo_text. =" $ Os_list
\ n "; // Adăugați lista RAM dacă această postare a fost etichetat (ă) dacă ("! = $ ram_list) $ taxo_text. = "$ ram_list
\ n "; // Adăugați lista HD dacă această postare a fost marcată astfel dacă ("! = $ hd_list) $ taxo_text. = "$ hd_list
\ n ";

Pasul 4 Afișați rezultatele clasificării, dacă există

Verificați dacă pașii de mai sus au dus la obținerea oricăror informații despre taxonomie. Dacă există informații despre taxonomie, o vom scoate înfășurată într-un div de clasă "intrare-utilitate".

 // Informația despre taxonomia de ieșire dacă există vreunul // NOTĂ: Nici nu vom deschide o div dacă nu există nimic de pus în ea. dacă ("! = $ taxo_text) ?> 

Pasul 5 Verificați rezultatele

Vizitați o pagină de postare și ar trebui să vedeți clasificările taxonomice personalizate enumerate mai jos.


Vizualizarea unei liste de postări după clasificarea taxonomică

Acum postările noastre individuale ne spun ce taxonomii personalizate au fost clasificate cu. Atunci când menționează o clasificare taxonomică particularizată, acestea oferă și un link pentru a lista toate posturile din clasificarea respectivă. De exemplu, dacă faceți clic pe linkul "Mac OS" de lângă "Sisteme de operare" din postarea noastră, vom lista în mod teoretic toate postările cu clasificarea sistemului de operare "Mac OS".

Cu toate acestea, acest lucru nu se întâmplă din cutie cu WordPress versiunea 3. Va trebui să facem un fișier de șablon personalizat pentru afișarea arhivelor de taxonomie pentru ca acesta să funcționeze. WordPress permite deja vizitatorilor să vizualizeze toate posturile atribuite unei anumite categorii sau tuturor postărilor care au dat o anumită etichetă. Când am terminat aici, vom putea vedea și toate postările atribuite anumitor clasificări în taxonomiile noastre personalizate.

Pentru a face acest lucru, va trebui să creați fișierul șablon "taxonomy.php". WordPress va încerca să utilizeze acest fișier ori de câte ori vrea să afișeze postări într-o taxonomie particularizată.


Pasul 1

Deschideți fișierul "category.php", copiați conținutul și inserați-l într-un fișier nou numit "taxonomy.php". Salvați taxonomy.php în directorul de teme. De exemplu, fișierul meu taxonomy.php este la:
[Website_root] /wp/wp-content/themes/twentyten/taxonomy.php.


Pasul 2 Obțineți informații despre clasificarea taxonomică curentă

În fișierul taxonomy.php, trebuie să obținem informații despre taxonomia care este afișată. Probabil că vom dori numele și descrierea (dacă există) pentru clasificarea selectată.

Doar sub , adăugați următoarea linie:

 $ term = get_term_by ("slug", get_query_var ("termen"), get_query_var ("taxonomie"));

Aceasta primește toate informațiile despre taxonomia care a numit această pagină și o returnează ca obiect în variabila $ term. De exemplu, clasificarea "Mac OS" returnează un obiect ca atare:

 Obiectivul stdClass ([term_id] => 13 [nume] => Mac OS [slug] => mac-os [term_group] => 0 [term_taxonomy_id] => => 0 [număr] => 2)

Pasul 3 Afișați numele și descrierea de clasificare

Vrem să schimbăm numele paginii pentru a le spune vizitatorilor la ce se uită. Deoarece am început cu șablonul category.php, putem lua linia care a fost utilizată pentru a tipări numele categoriei și a schimba un pic pentru a ne oferi numele paginii dorite și, dacă este cazul, descrierea.

Modificați următoarea linie din category.php:

 printf (__ ("Arhive de categorie:% s", "twentyten"),". single_cat_title (", false)."');

Citiți după cum urmează:

 printf (__ ("Posturi clasificate la:% s", "twentyten"),". $ nume_firma. '');

Aceasta schimbă textul static care începe de la rând și apoi introduce numele clasificării. (Notă: pentru o localizare corectă, trebuie să adăugăm "Mesaje clasificate sub:" corect în limbile / twentyten.pot. Aceasta este în afara scopului acestui tutorial, dar trebuie să fii conștient de încălcarea de aici.)

Apoi adăugați următoarele:

 dacă ("! = $ term_descr) echo"

$ term_descr

\ n ";

Dacă există o descriere pentru această clasificare, va fi afișată chiar sub titlu.

După ce ați efectuat modificări în taxonomy.php, vizitați unul dintre postările dvs. care a primit o clasificare taxonomică particularizată. Din cauza muncii noastre anterioare în fișierul "single.php", postul ar trebui să afișeze clasificări personalizate sub el. Pur și simplu faceți clic pe una dintre aceste clasificări pentru a vedea listarea taxonomică la serviciu.


Concluzie

Sper că acest tutorial explică clar ce taxonomii sunt și ți-a arătat cum să le folosești în WordPress 3 ca un instrument organizațional puternic. Sper să furnizez un tutorial de urmărire care explică în curând tipurile personalizate de posturi WordPress, relația lor strânsă cu taxonomiile personalizate și modul de utilizare a acestora. Vă mulțumim foarte mult pentru că ați avut timp să vizitați Nettuts!

Cod