In un precedente tutorial, ho dimostrato come creare un archivio di tassonomia che elenchi i post in termini di tassonomia.
Questo tutorial è simile in quanto mostra come separare i post nei tuoi archivi, ma utilizza una struttura diversa e un file modello diverso. Quello che ti mostrerò come fare qui è creare un modello di archivio per una tassonomia che elenchi i post per tipo di post.
Questo potrebbe essere utile se hai registrato un tipo di post che vuoi tenere separato dai post normali o da un altro tipo di post, ma hai una tassonomia che si applica a entrambi. Ad esempio, se stai elencando libri e articoli come tipi di post diversi, ma avrai argomenti comuni come tassonomia (ad esempio WordPress!).
Nell'esempio che userò qui, lavorerò con il tipo di post "animals" come ho fatto nel tutorial precedente, ma stavolta lavorerò anche con i post normali. Elencherò prima gli animali con il termine interrogato e quindi elencherò i post del blog con quel termine.
Creerò un tema che è un tema per bambini di ventiquattro anni, quindi se stai utilizzando i file di origine per questo tutorial avrai anche bisogno di quel tema installato nel tuo sito. Nel foglio di stile del mio tema, aggiungo quanto segue:
/ * Nome del tema: WPTutsPlus Creazione di un archivio di tassonomia per elencare i post per URI di temi dei tipi di post: http://rachelmccollin.co.uk/wptutsplus-tax-archive-by-post-type/ Descrizione: Tema per supportare il tutorial di WPTutsPlus sulla creazione un archivio di tassonomia personalizzato. Tema infantile per il tema Twenty Fourteen. Autore: Rachel McCollin Autore URI: http://rachelmccollin.co.uk/ Template: twentyfourteen Versione: 1.0 * / @import url ("... /twentyfourteen/style.css");
Questo è tutto ciò che devo aggiungere per creare il tema di mio figlio. Se stai utilizzando il tuo tema, puoi saltare questo passaggio.
Nota: se hai seguito il mio altro tutorial sulla creazione di un modello di archivio del tipo di post personalizzato, puoi utilizzare il tema che hai creato per questo poiché utilizza gli stessi tipi di post e tassonomia. Dovrai solo apportare una modifica che evidenzierò in questa sezione e aggiungere un nuovo file modello per l'archivio della tassonomia.
Il passo successivo è registrare il tipo di post "animale" e una tassonomia della "famiglia degli animali". Creare un functions.php
file per il tema e in primo luogo aggiungere la funzione per registrare il tipo di messaggio:
// registra un tipo di messaggio personalizzato chiamato funzione "animals" wptp_create_post_type () $ labels = array ('name' => __ ('Animals'), 'singular_name' => __ ('animal'), 'add_new' => __ ('Nuovo animale'), 'add_new_item' => __ ('Aggiungi nuovo animale'), 'edit_item' => __ ('Modifica animale'), 'new_item' => __ ('Nuovo animale'), 'view_item '=> __ (' Visualizza animale '),' search_items '=> __ (' Cerca animali '),' not_found '=> __ (' Nessun animale trovato '),' not_found_in_trash '=> __ (' Nessun animale trovato in Spazzatura' ), ); $ args = array ('labels' => $ labels, 'has_archive' => true, 'public' => true, 'hierarchical' => false, 'supports' => array ('title', 'editor', '' estratto "," campi personalizzati "," miniatura "," attributi della pagina ")," tassonomie "=> matrice (" post_tag "," categoria "),); register_post_type ('animal', $ args); add_action ('init', 'wptp_create_post_type');
Avanti sotto quel passo, registra la tassonomia della famiglia di Aminal.
Se stai lavorando con il tema creato nel tutorial precedente, dovrai aggiungere array ( 'animale' post ')
ai tuoi argomenti per la funzione, l'intenzione di giusto 'animale'
.
// registra una tassonomia chiamata funzione "Famiglia animale" wptp_register_taxonomy () register_taxonomy ('animal_cat', array ('animal', 'post'), array ('labels' => array ('name' => 'Animal Families') , 'singular_name' => 'Famiglia di animali', 'search_items' => 'Cerca famiglie di animali', 'all_items' => 'Tutte le famiglie di animali', 'edit_item' => 'Modifica famiglie di animali', 'update_item' => ' Aggiorna famiglia di animali ',' add_new_item '=>' Aggiungi nuova famiglia di animali ',' new_item_name '=>' Nuovo nome di famiglia di animali ',' menu_name '=>' Famiglia di animali ',),' gerarchico '=> vero,' ordina '=> true,' args '=> array (' orderby '=>' term_order '),' rewrite '=> array (' slug '=>' animal-family '),' show_admin_column '=> true)); add_action ('init', 'wptp_register_taxonomy');
Salva il tuo file di funzioni e troverai il tuo nuovo tipo di post e la tassonomia visualizzati nell'amministratore del tuo sito.
Ora aggiungi alcuni dati: ho aggiunto alcuni animali e post alla famiglia "Canini".
Ora crea un file chiamato tassonomia-animal_cat.php
. Questo sarà il modello di archivio per la nuova tassonomia.
Copia il codice wrapper dal tema in questo file in modo che abbia elementi e classi in comune con il resto del tema. Sto copiando da ventiquattro - se usi il tuo tema, copia da quello. Copia tutto tranne l'intestazione e il ciclo e aggiungi alcuni commenti nella parte superiore per ricordarti a cosa serve questo file:
4. Identificazione dell'oggetto interrogato
Affinché tu possa visualizzare il nome del termine interrogato e definire le tue query nei due loop che creerai, devi identificare l'oggetto interrogato e salvarlo come variabile.
Aggiungi il seguente da qualche parte vicino alla parte superiore del tuo modello di archivio (lo aggiungo sotto il
get_header ()
chiamata):Lo utilizzerai nel passaggio successivo.
5. Uscita dell'intestazione dell'archivio
Prima di aggiungere i tuoi loop, devi generare un'intestazione per la tua pagina di archivio. All'interno dell'apertura del
#soddisfare
div, aggiungi il codice qui sotto:nome; ?>
6. Il primo ciclo
Sotto l'intestazione, è necessario aggiungere il primo ciclo, utilizzando
WP_Query
come avrai bisogno di definire gli argomenti.Prima definisci la query:
// Definire la query $ args = array ('post_type' => 'animal', 'animal_cat' => $ term-> slug); $ query = new WP_Query ($ args);Si noti che questo utilizza il
$ termine
variabile che hai già definito.E poi aggiungi il ciclo, emettendo un link per ogni animale in una lista non ordinata:
if ($ query-> have_posts ()) // mostra il nome del termine in un tag di intestazione echo 'Animali nel '. $ term-> nome. ' Famiglia
'; // emette i titoli dei post in una lista echo '
È importante includere due cose qui:
wp_reset_postdata ()
per resettare la query - devi sempre usarla con WP_Query
.Il secondo ciclo è quasi identico al primo ciclo ad eccezione degli argomenti della query:
'post', 'animal_cat' => $ term-> slug); $ query = new WP_Query ($ args); if ($ query-> have_posts ()) // mostra il nome del termine in un tag di intestazione echo 'Post sul blog Informazioni su '. $ term-> nome. ' Famiglia
'; // emette i titoli dei post in una lista echo '
Ora salva il tuo file modello e visualizza l'archivio in anteprima. Dovresti vedere due liste, una di animali e l'altra di post:
È così che crei un archivio di tassonomia per elencare i post per tipo di post. Potresti estendere questa tecnica per rendere più interessanti le tue pagine di archivio:
Sono sicuro che puoi pensare a più possibilità!