Într-un tutorial mai devreme, am demonstrat cum să creați o arhivă de taxonomie care să enumere postări după termenul de taxonomie.
Acest tutorial este similar în măsura în care vă arată cum puteți să separați postările din arhivele dvs., dar utilizează o structură diferită și un fișier șablon diferit. Ce vă voi arăta cum să faceți acest lucru este să creați un șablon de arhivă pentru o taxonomie care listează postările după tipul postării.
Acest lucru ar putea fi util dacă ați înregistrat un tip de post pe care doriți să îl păstrați separat de postările normale sau dintr-un alt post, dar aveți o taxonomie care se aplică ambelor. De exemplu, dacă listați cărți și articole ca diferite tipuri de posturi, dar vor avea subiecte comune ca taxonomia dvs. (de exemplu, WordPress!).
În exemplul pe care îl voi folosi aici, voi lucra cu tipul postului "animale" așa cum am făcut în tutorialul anterior, dar de această dată voi lucra și cu postări normale. Voi lista animalele cu termenul interogat mai întâi și apoi voi lista posturile pe blog cu termenul respectiv.
Voi crea o temă care este o temă copilărească de douăzeci și unu de ani, așa că dacă utilizați fișierele sursă pentru acest tutorial, veți avea nevoie și de acea temă instalată pe site-ul dvs. În foaia de stil a temei mele, adaug următoarele:
/ * Tema Nume: WPTutsPlus Crearea unei arhive de taxonomie pentru a lista postările după post URI temă tip: http://rachelmccollin.co.uk/wptutsplus-tax-archive-by-post-type/ Descriere: Tema de a sprijini WPTutsPlus tutorial privind crearea o arhivă de taxonomie personalizată. Tema copilului pentru tema Twenty Thirteen. Autor: Rachel McCollin Autor URI: http://rachelmccollin.co.uk/ Format: twentyfourteen Versiune: 1.0 * / @import url ("... /twentyfourteen/style.css");
Asta e tot ce trebuie să adaug pentru a crea tema copilului meu. Dacă utilizați propria temă, puteți trece peste acest pas.
Notă: Dacă ați urmat celălalt tutorial despre crearea unui șablon arhivat tip postare personalizat, puteți utiliza tema pe care ați creat-o pentru că utilizează aceleași tipuri de postări și taxonomie. Veți avea nevoie să faceți o singură modificare pe care o voi evidenția în această secțiune și să adăugați un nou fișier șablon pentru arhiva taxonomică.
Următorul pas este înregistrarea tipului postului "animal" și a unei taxonomii "familiei animalelor". Creeaza o functions.php
fișier pentru tema dvs. și, în primul rând, adăugați funcția de înregistrare a tipului de post:
// înregistrați un tip de post particularizat numit "animale" funcția wptp_create_post_type () $ labels = array ('nume' => __ ('Animals'), 'singular_name' => __ ("Animal nou"), "add_new_item" => __ ("Adăugați animal nou"), "edit_item" => '=> __ ("Nu au fost găsite animale"), "not_found_in_trash" => __ ("Nu s-au găsit animale în Gunoi' ), ); $ arge = array ('etichete' => etichete $, 'has_archive' => true, 'public' => true, 'hierarchical' => false, extras ',' custom-fields ',' thumbnail ',' page-attributes '),' taxonomies '=> array (' post_tag ',' category ');); register_post_type ('animal', $ args); add_action ('init', 'wptp_create_post_type');
În continuare, sub această etapă, înregistrați taxonomia familială aminală.
Dacă lucrați cu tema creată în tutorialul anterior, va trebui să adăugați array ( 'animal,' post ")
la argumentele dvs. pentru funcția, intenția de justă 'animal'
.
// înregistrează o taxonomie numită "Animal Family" funcția wptp_register_taxonomy () register_taxonomy ('animal_cat', array ('animal', 'post'), array (' , 'all_items' => 'Toate familiile animale', 'edit_item' => 'Editează familii de animale', 'update_item' => Actualizați familia animalelor ',' add_new_item '=>' Adăugați o nouă familie de animale ',' new_item_name '=>' Nume de familie nouă ',' menu_name '=> '=> true,' args '=> array (' orderby '=>' term_order '),' rewrite '=> array (' slug '=> animal-family),' show_admin_column '=> true)); add_action ('init', 'wptp_register_taxonomy');
Salvați fișierele cu funcții și veți găsi tipul nou de postare și taxonomia care apare în administratorul site-ului dvs..
Acum adaugati cateva date - am adaugat cateva animale si posturi in familia "canini".
Acum, creați un fișier numit taxonomie-animal_cat.php
. Acesta va fi șablonul de arhivă pentru noua taxonomie.
Copiați codul de împachetare de pe tema la acest fișier, astfel încât să aibă elemente și clase comune cu restul temei. Am copiat de la douăzeci și opt de ani - dacă folosiți propria temă, copiați din asta. Copiați totul, cu excepția poziției și a buclă, și adăugați câteva comentarii în partea de sus pentru a vă aminti ce este acest fișier:
4. Identificarea obiectului interogat
Pentru a putea afișa numele termenului care este interogat și pentru a defini interogările dvs. în cele două bucle pe care le veți crea, trebuie să identificați obiectul interogat și să îl salvați ca o variabilă.
Adăugați următorul text undeva în partea de sus a șablonului dvs. de arhivă (îl adaug în secțiunea de mai jos)
get_header ()
apel):Veți utiliza acest lucru în pasul următor.
5. Executarea titlului de arhivă
Înainte de a adăuga buclele dvs., trebuie să trimiteți o rubrică pentru pagina dvs. de arhivă. În interiorul deschiderii
#conţinut
div, adăugați codul de mai jos:Nume; ?>
6. Prima buclă
Sub titlul, trebuie să adăugați prima buclă folosind
WP_Query
deoarece va trebui să definiți argumentele.Mai întâi definiți interogarea:
// Definiți interogarea $ args = array ('post_type' => 'animal', 'animal_cat' => $ term-> slug); $ query = noua valoare WP_Query ($ args);Rețineți că aceasta utilizează funcția
termenul $
variabilă pe care ați definit-o deja.Apoi adăugați buclă, trimițând un link către fiecare animal într-o listă neordonată:
dacă ($ interogare-> are_posts ()) // ieșire numele termenului într-un tag echo 'Animale în ". $ term-> nume. ' Familie
„; // scoateți titlurile postului într-o listă de ecou '
Este important să includeți două lucruri aici:
wp_reset_postdata ()
pentru a reseta interogarea - trebuie să utilizați întotdeauna acest lucru cu WP_Query
.Cea de-a doua bucla este aproape identică cu prima buclă, cu excepția argumentelor interogării:
'post', 'animal_cat' => $ term-> slug); $ query = noua valoare WP_Query ($ args); dacă ($ interogare-> are_posts ()) // ieșire numele termenului într-un tag echo 'Articole despre blog Despre. $ term-> nume. ' Familie
„; // scoateți titlurile postului într-o listă de ecou '
Acum salvați fișierul șablonului și previzualizați arhiva. Ar trebui să vedeți două liste, una de animale și una de posturi:
Acesta este modul în care creați o arhivă de taxonomie pentru a lista postările după tipul postării. Ați putea extinde această tehnică pentru a vă face mai interesante paginile de arhivă:
Sunt sigur că vă puteți gândi la mai multe posibilități!