I en tidigare handledning visade jag hur man skapar ett taxonomiarkiv som listar inlägg efter taxonomiderm.
Denna handledning är liknande eftersom den visar hur du separerar inlägg i dina arkiv, men det använder en annan struktur och en annan mallfil. Vad jag ska visa dig hur man gör här är att skapa en arkivmall för en taxonomi som listar inlägg per posttyp.
Det här kan vara användbart om du har registrerat en posttyp som du vill behålla separat från normala inlägg eller från en annan posttyp, men har en taxonomi som gäller för båda. Om du exempelvis listar böcker och artiklar som olika posttyper, men kommer att ha vanliga ämnen som din taxonomi (t.ex. WordPress!).
I exemplet använder jag här, jag ska arbeta med posten "djur" som jag gjorde i den tidigare handledningen, men den här gången jobbar jag också med vanliga inlägg. Jag listar djur med den frågade termen först och sedan listar jag blogginlägg med den termen.
Jag ska skapa ett tema som är ett barntema av tjugofemt, så om du använder källfilerna för den här handledningen behöver du också det temat som är installerat på din webbplats. I mitt tema stilark lägger jag till följande:
/ * Tema Namn: WPTutsPlus Skapa ett Taxonomy-arkiv till listan inlägg av Posttyp Tema URI: http://rachelmccollin.co.uk/wptutsplus-tax-archive-by-post-type/ Beskrivning: Tema för att stödja WPTutsPlus handledning om att skapa ett anpassat taxonomi arkiv. Barn tema för tjugofjorton tema. Författare: Rachel McCollin Författare URI: http://rachelmccollin.co.uk/ Mall: twentyfourteen Version: 1.0 * / @import url ("... /twentyfourteen/style.css");
Det är allt jag behöver lägga till för att skapa mitt barntema. Om du använder ditt eget tema kan du hoppa över det här steget.
Obs! Om du följde min andra handledning om hur du skapar en anpassad posttyp arkivmall kan du använda det tema du skapade för det eftersom det använder samma posttyper och taxonomi. Du behöver bara göra en tweak som jag kommer att markera i det här avsnittet och lägga till en ny mallfil för taxonomins arkiv.
Nästa steg är att registrera "djur" posttyp och en "djurfamilj" taxonomi. Skapa en functions.php
fil för ditt tema och först lägg till funktionen för att registrera posttypen:
// registrera en anpassad posttyp som kallas "djur" funktion wptp_create_post_type () $ labels = array ('name' => __ ('Djur'), 'singular_name' => __ ('animal'), 'add_new' => __ ('Nytt djur'), 'add_new_item' => __ ('Lägg till nytt djur'), 'edit_item' => __ ('Rediger djur'), 'new_item' => __ ('Nytt djur'), 'view_item '=> __ (' Visa djur '),' search_items '=> __ (' Sök djur '),' not_found '=> __ (' Inga djur hittades '),' not_found_in_trash '=> __ (' Inga djur hittades Skräp' ), ); $ args = array ('labels' => $ etiketter, 'has_archive' => true, 'public' => true, 'hierarchical' => false, 'supports' => utdrag ',' anpassade fält ',' miniatyrbild ',' sidattribut '),' taxonomies '=> array (' post_tag ',' category ')); register_post_type ('animal', $ args); add_action ('init', 'wptp_create_post_type');
Nästa under det steget registrerar du aminal-taxonomin.
Om du arbetar med det tema som skapades i den tidigare handledningen måste du lägga till array ( 'djur,' post ")
till dina argument för funktionen, avser bara 'djur'
.
// register en taxonomi som heter "Animal Family" -funktionen wptp_register_taxonomy () register_taxonomy ('animal_cat', array ('djur', 'post'), array ('labels' => array , 'singular_name' => 'Animal Family', 'search_items' => 'Sök djurfamiljer', 'all_items' => 'Alla djurfamiljer', 'edit_item' => 'Redigera djurfamiljer', 'update_item' => ' Uppdatera Animal Family ',' add_new_item '=>' Lägg till nytt djurfamilj ',' new_item_name '=>' Nytt djurfamiljnamn ',' menu_name '=>' Animalfamilj '),' hierarkisk '=> sant' '=> true,' args '=> array (' orderby '=>' term_order '),' rewrite '=> array (' slug '=>' djurfamilj '),' show_admin_column '=> true)); add_action ('init', 'wptp_register_taxonomy');
Spara din funktionsfil och du hittar din nya posttyp och taxonomi visas på din webbplatsadministratör.
Lägg nu till några data - jag har lagt till några djur och inlägg till familjen "Canines".
Skapa nu en fil som heter taxonomi-animal_cat.php
. Detta blir arkivmallen för den nya taxonomin.
Kopiera omslagskoden från ditt tema till den här filen så att det har element och klasser gemensamt med resten av ditt tema. Jag kopierar från tjugofemtonen - om du använder ditt eget tema, kopiera från det. Kopiera allt utom rubriken och slingan och lägg till några kommentarer högst upp för att påminna dig vad den här filen är för:
4. Identifiera Queried Object
Så att du kan visa namnet på termen som frågas och definiera dina frågor i de två looparna du skapar måste du identifiera det efterfrågade objektet och spara det som en variabel.
Lägg till följande någonstans nära toppen av din arkivmall (jag lägger till den nedanför
get_header ()
ring upp):Du kommer att använda det i nästa steg.
5. Utmatning av arkivrubriken
Innan du lägger till dina loopar måste du skriva ut en rubrik för din arkivsida. Inne i öppningen av
#innehåll
div, lägg till koden nedan:namn; ?>
6. The First Loop
Under rubriken måste du lägga till din första slinga med
WP_Query
eftersom du måste definiera argumenten.Definiera först frågan:
// Definiera frågan $ args = array ('post_type' => 'animal', 'animal_cat' => $ term-> slug); $ query = nytt WP_Query ($ args);Observera att detta använder
$ term
variabel du redan har definierat.Och lägg sedan till slingan, och lägg ut en länk till varje djur på en orörd lista:
om $ query-> have_posts ()) // matar ut termen i ett rubrik tag echo 'Djur i ". $ term-> namn. "Familj
'; // skriva ut titlarna i en lista echo '
Det är viktigt att ta med två saker här:
wp_reset_postdata ()
för att återställa frågan - du måste alltid använda det här med WP_Query
.Den andra slingan är nästan identisk med den första slingan förutom förfrågningsargumenten:
'post', 'animal_cat' => $ term-> slug); $ query = nytt WP_Query ($ args); om $ query-> have_posts ()) // matar ut termen i ett rubrik tag echo 'Blogginlägg om '. $ term-> namn. "Familj
'; // skriva ut titlarna i en lista echo '
Spara nu din mallfil och förhandsgranska arkivet. Du bör se två listor, en av djur och den andra av inlägg:
Så här skapar du ett taxonomiarkiv för att lista inlägg via posttyp. Du kan förlänga den här tekniken för att göra dina arkivsidor mer intressanta:
Jag är säker på att du kan tänka på fler möjligheter!