I en tidligere opplæring viste jeg hvordan man lager et taksonomiarkiv som lister innlegg etter taksonomi.
Denne opplæringen ligner på at den viser deg hvordan du skiller ut innlegg i arkivet, men det bruker en annen struktur og en annen malfil. Det jeg skal vise deg hvordan du gjør her, er å lage en arkivmal for en taksonomi som viser innlegg etter posttype.
Dette kan være nyttig hvis du har registrert en posttype som du vil beholde atskilt fra vanlige innlegg eller fra en annen posttype, men har en taksonomi som gjelder begge deler. For eksempel, hvis du noterer bøker og artikler som forskjellige posttyper, men vil ha vanlige emner som din taksonomi (for eksempel WordPress!).
I eksemplet jeg bruker her, vil jeg jobbe med posten "dyr" som jeg gjorde i den forrige opplæringen, men denne gangen jobber jeg også med vanlige innlegg. Jeg vil liste dyr med spørsmålet først og deretter vil jeg legge inn blogginnlegg med det aktuelle uttrykket.
Jeg skal lage et tema som er et barnemne på femtiotredien, så hvis du bruker kildefilene for denne opplæringen, trenger du også det temaet som er installert på nettstedet ditt. I temaet mitt stilark, legger jeg til følgende:
/ * Tema navn: WPTutsPlus Opprette et taksonomiarkiv for å liste innlegg ved Post Type Theme URI: http://rachelmccollin.co.uk/wptutsplus-tax-archive-by-post-type/ Beskrivelse: Tema for å støtte WPTutsPlus opplæring om å skape et tilpasset taksonomiarkiv. Barn tema for Twenty Fourteen tema. Forfatter: Rachel McCollin Forfatter URI: http://rachelmccollin.co.uk/ Mal: twentyfourteen Versjon: 1.0 * / @import url ("... /twentyfourteen/style.css");
Det er alt jeg trenger å legge til for å lage mitt barn tema. Hvis du bruker ditt eget tema, kan du hoppe over dette trinnet.
Merk: Hvis du fulgte med min andre veiledning om å lage en tilpasset posttype arkivmal, kan du bruke temaet du opprettet for det, da det bruker de samme innleggstyper og taksonomi. Du trenger bare å lage en tweak som jeg vil markere i denne delen, og legge til en ny malfil for taksonomiarkivet.
Det neste trinnet er å registrere "dyr" posttypen og en "dyrfamilie" taksonomi. Lage en functions.php
fil for temaet ditt og først legg til funksjonen for å registrere posttypen:
// registrer en egendefinert posttype som kalles «dyr» -funksjon wptp_create_post_type () $ labels = array ('name' => __ ('Dyr'), 'singular_name' => __ ('animal'), 'add_new' => __ ('Nytt dyr'), 'add_new_item' => __ ('Legg til nytt dyr'), 'edit_item' => __ ('Rediger dyr'), 'new_item' => __ ('Nytt dyr'), 'view_item '=> __ (' Se dyr '),' search_items '=> __ (' Søk dyr '),' not_found '=> __ (' Ingen dyr funnet '),' not_found_in_trash '=> __ Søppel '),); $ args = array ('labels' => $ etiketter, 'has_archive' => true, 'public' => true, 'hierarchical' => false, 'supports' => utdrag ',' egendefinerte felt ',' miniatyrbilde ',' sideattributter '),' taxonomies '=> array (' post_tag ',' kategori ');); register_post_type ('animal', $ args); add_action ('init', 'wptp_create_post_type');
Neste under dette trinnet, registrer aminalfamiliens taksonomi.
Hvis du jobber med temaet som ble opprettet i den tidligere opplæringen, må du legge til array ( 'dyr,' innlegg ')
til dine argumenter for funksjonen, har tenkt bare 'dyr'
.
// register en taksonomi kalt 'Animal Family' -funksjon wptp_register_taxonomy () register_taxonomy ('animal_cat', array ('animal', 'post'), array ('labels' => , 'all_items' => 'Animal Family', 'search_items' => 'Søkefamilier', 'all_items' => 'Alle animalfamilier', 'edit_item' => 'Rediger dyrefamilier', 'update_item' => ' Oppdater dyreliv ',' add_new_item '=>' Legg til nytt dyrfamilie ',' new_item_name '=>' Nytt dyrfamilienavn ',' menu_name '=>' Animalfamilie '),' hierarkisk '=> sant' '=> true,' args '=> array (' orderby '=>' term_order '),' rewrite '=> array (' slug '=>' familiefamilie '),' show_admin_column '=> true)); add_action ('init', 'wptp_register_taxonomy');
Lagre funksjonsfilen din, og du vil finne den nye posttypen og taksonomien du ser på nettstedet ditt.
Legg nå til noen data - Jeg har lagt til noen dyr og innlegg til familien Canines.
Lag nå en fil som heter taksonomi-animal_cat.php
. Dette vil være arkivmalen for den nye taksonomien.
Kopier pakkekoden fra temaet til denne filen, så det har elementer og klasser felles med resten av temaet ditt. Jeg kopierer fra tjuefemteen - hvis du bruker ditt eget tema, kopi fra det. Kopier alt unntatt overskriften og sløyfen, og legg til noen kommentarer øverst for å minne deg på hva denne filen er for:
4. Identifisere Queried Object
Slik at du kan vise navnet på termen som blir forespurt og definere dine spørsmål i de to løkkene du skal opprette, må du identifisere det forespurte objektet og lagre det som en variabel.
Legg til følgende et sted nær toppen av arkivmalen din (jeg legger den under
get_header ()
anrop):Du bruker det i neste trinn.
5. Skrive ut arkivoverskriften
Før du legger til sløyfer, må du skrive ut en overskrift på arkivsiden din. Inne i åpningen av
#innhold
div, legg til koden nedenfor:Navn; ?>
6. The First Loop
Under overskriften må du legge til din første sløyfe ved å bruke
WP_Query
som du må definere argumentene.Definer først spørringen:
// Definer spørringen $ args = array ('post_type' => 'animal', 'animal_cat' => $ term-> slug); $ query = nytt WP_Query ($ args);Legg merke til at dette bruker
$ sikt
variabel du allerede har definert.Og legg deretter til sløyfen, og legg ut en link til hvert dyr i en uordnet liste:
hvis ($ query-> have_posts ()) // skriver ut navnet i et overskrift tag ekko 'Dyr i '. $ term-> navn. 'Familie
'; // utgav posttitlene i en liste ekko '
Det er viktig å inkludere to ting her:
wp_reset_postdata ()
for å tilbakestille spørringen - du må alltid bruke dette med WP_Query
.Den andre sløyfen er nesten identisk med den første sløyfen, bortsett fra spørringsargumentene:
'innlegg', 'animal_cat' => $ term-> slug); $ query = nytt WP_Query ($ args); hvis ($ query-> have_posts ()) // skriver ut navnet i et overskrift tag ekko 'Blogginnlegg om '. $ term-> navn. 'Familie
'; // utgav posttitlene i en liste ekko '
Lagre nå malfilen din og forhåndsvis arkivet. Du bør se to lister, en av dyrene og den andre av innleggene:
Slik lager du et taksonomiarkiv for å liste innlegg etter posttype. Du kan utvide denne teknikken for å gjøre arkivsidene mer interessante:
Jeg er sikker på at du kan tenke på flere muligheter!