Le tassonomie personalizzate di WordPress sono un ottimo modo per organizzare i contenuti del tuo sito Web, ma quali sono esattamente? Come possono essere implementati in modo efficace? Ancora più importante, però, come possono beneficiare il tuo sito web? Non temere, quello che stai per leggere qui sotto è la guida più completa alle tassonomie personalizzate di WordPress che troverai su internet oggi.
Al suo livello più elementare, una tassonomia è semplicemente un metodo per raggruppare le cose. Se in precedenza hai pubblicato un post in WordPress, è probabile che tu abbia già utilizzato le tassonomie. I tag e le categorie standard all'interno di WordPress sono considerati tassonomie! Parliamo ora di tassonomie personalizzate. WordPress ti ha permesso di creare le tue tassonomie dalla versione 2.3, tuttavia, hanno iniziato a diventare popolari fin dalla versione 2.9.
Un modo popolare per spiegare le tassonomie personalizzate è usare l'esempio dei film. Facciamo finta di scrivere un articolo sul film "Terminator 2". Quello che normalmente faremo con le tassonomie incorporate standard, è classificare l'articolo usando tag e categorie. Il problema con le tassonomie incorporate è che sono estremamente generiche.
Continueremo con questo esempio e fingiamo di aver inserito "Arnold Schwarzenegger" come uno dei nostri tag. Per chi non ha familiarità con l'attore austriaco, questo potrebbe essere abbastanza confuso. Ovviamente è il nome di una persona, ma questa persona è un attore? Un direttore? Un produttore? Un approccio molto migliore sarebbe quello di creare una tassonomia personalizzata chiamata "attori" e aggiungere il nome di Arnold a quella particolare tassonomia. Potremmo spingerci ancora oltre e aggiungere ulteriori tassonomie personalizzate per altri gruppi di film tipici come generi, registi, produttori e altri.
Una parola che faresti bene a familiarizzare con è "termine". In WordPress, un termine è una singola classificazione che vive all'interno ed è definita dalla sua tassonomia. Nel nostro esempio precedente avevamo una tassonomia chiamata "attori", quindi i nostri termini sarebbero: Arnold Schwarzenegger, Linda Hamilton, Edward Furlong, ecc..
Le tassonomie personalizzate possono aumentare significativamente l'organizzazione e l'usabilità del tuo sito web. A causa della flessibilità offerta dalle tassonomie personalizzate, saranno sempre più specifici per il tuo argomento di scelta rispetto ai tag e alle categorie. Un esempio ovvio è includere le tue tassonomie nella parte inferiore o superiore del tuo articolo. Nell'esempio seguente ho creato tre tassonomie personalizzate e ho visualizzato i termini associati sotto l'area di contenuto principale dell'articolo.
Cool, vero? Questo non è l'unico uso però. Nell'esempio sopra, noterai che il testo sembra essere hyperlink, perché è così. Le tassonomie personalizzate consentono di disporre di archivi per termini specifici. Ciò non solo consente una migliore organizzazione dei contenuti, ma consente anche agli utenti di sottoscrivere termini specifici tramite RSS. Un altro uso minore implementato per le tassonomie personalizzate è semplicemente utilizzarle come sostituzione dei tag. Ho deciso di adottare questo approccio esatto per un blog di gioco che ho recentemente lanciato. Non devi sempre sottolineare il fatto che stai usando le tassonomie personalizzate, ricorda, il loro vero potere risiede nel potenziale di archiviazione, ricerca, interrogazione e struttura URL superiore.
Ci sono molti altri vantaggi nell'usare le tassonomie personalizzate, ma piuttosto che discutere i casi d'uso teorici, vediamo invece alcuni esempi pratici con il codice per eseguirne il backup.
Ora che capiamo quali sono le tassonomie e come usarle, possiamo iniziare a implementarle nei nostri temi. Per iniziare, registreremo innanzitutto la nostra tassonomia personalizzata. In questo esempio, sto creando una tassonomia chiamata "attori". Se segui questo tutorial, ti consigliamo di aprire i temi functions.php file e inserire il seguente codice.
$ labels = array ('name' => __ ('Actors', 'your-themes-text-domain'), 'singular_name' => __ ('Actor', 'your-themes-text-domain'), ' search_items '=> __ (' Cerca gli attori ',' your-themes-text-domain '),' popular_items '=> __ (' Popular Actors ',' your-themes-text-domain '),' all_items '=> __ ('Tutti gli attori', 'your-themes-text-domain'), 'parent_item' => __ ('Parent Actor', 'your-themes-text-domain'), 'edit_item' => __ ('Modifica Attore ',' your-themes-text-domain '),' update_item '=> __ (' Aggiorna attore ',' your-themes-text-domain '),' add_new_item '=> __ (' Aggiungi nuovo attore ', 'your-themes-text-domain'), 'new_item_name' => __ ('New Actor', 'your-themes-text-domain'), 'separate_items_with_commas' => __ ('Separa gli attori con le virgole', 'your -themes-text-domain '),' add_or_remove_items '=> __ (' Aggiungi o rimuovi attori ',' your-themes-text-domain '),' choose_from_most_used '=> __ (' Scegli tra gli attori più usati ',' your-themes-text-domain ')); $ args = array ('labels' => $ labels, 'public' => true, 'hierarchical' => false, 'show_ui' => true, 'show_in_nav_menus' => true, 'query_var' => true); register_taxonomy ('actor', 'post', $ args);
Non essere allarmato dalla quantità di codice qui, è tutto abbastanza semplice quando lo abbatti. La maggior parte del codice si trova nel $ etichette
array. Questo array definisce il contenuto di alcune etichette all'interno del dashboard di WordPress. Il $ args
array è dove avviene la vera magia; questo definisce le impostazioni per la tassonomia.
Noterai che per l'argomento "etichette" stiamo passando nell'array di etichette che abbiamo creato in precedenza. Un altro argomento degno di menzione è l'argomento "gerarchico". Questo definisce se le nostre tassonomie hanno o meno la capacità di tassonomie annidate, o tassonomie "bambino". Nel nostro esempio non avremo bisogno di questa particolare funzionalità, ma prendiamo nota della sua esistenza in quanto potrebbe richiedere un sistema di tassonomia granulare in progetti futuri.
Spiegare ogni argomento va oltre lo scopo di questo particolare tutorial, ma se vuoi saperne di più puoi sempre studiare questi argomenti in dettaglio sul codice WordPress ufficiale register_taxonomy
pagina.
L'ultima cosa da notare qui è la chiamata al register_taxonomy
funzione. Il primo argomento definisce il nome della tassonomia (utilizzato internamente in WordPress). Il secondo argomento definisce a quale tipo di post verrà assegnata la tassonomia. Nel nostro scenario, lo colleghiamo ai post standard di WordPress. In alternativa, puoi allegarlo a un tipo di post personalizzato o anche a diversi tipi di post passandogli una serie di tipi di post.
Ora che abbiamo registrato con successo la nostra tassonomia personalizzata, noteremo che ora abbiamo una meta box "Attori" che si trova nella colonna di destra della pagina di modifica del post di WordPress. A questo punto, l'aggiunta di termini in questa meta casella li salverà nel database ma non li visualizzerà nella parte frontale del tema. Implementiamo l'esempio presentato in precedenza con i tre elenchi di tassonomia, situati nella parte inferiore del post.
Per questo esempio è necessario duplicare il codice utilizzato per registrare la tassonomia degli attori due volte e rinominare le etichette per riflettere le nostre tassonomie, i generi e gli scrittori aggiuntivi. Ecco cosa è mio functions.php il file sembra così lontano.
$ labels = array ('name' => __ ('Actors', 'your-themes-text-domain'), 'singular_name' => __ ('Actor', 'your-themes-text-domain'), ' search_items '=> __ (' Cerca gli attori ',' your-themes-text-domain '),' popular_items '=> __ (' Popular Actors ',' your-themes-text-domain '),' all_items '=> __ ('Tutti gli attori', 'your-themes-text-domain'), 'parent_item' => __ ('Parent Actor', 'your-themes-text-domain'), 'edit_item' => __ ('Modifica Attore ',' your-themes-text-domain '),' update_item '=> __ (' Aggiorna attore ',' your-themes-text-domain '),' add_new_item '=> __ (' Aggiungi nuovo attore ', 'your-themes-text-domain'), 'new_item_name' => __ ('New Actor', 'your-themes-text-domain'), 'separate_items_with_commas' => __ ('Separa gli attori con le virgole', 'your -themes-text-domain '),' add_or_remove_items '=> __ (' Aggiungi o rimuovi attori ',' your-themes-text-domain '),' choose_from_most_used '=> __ (' Scegli tra gli attori più usati ',' your-themes-text-domain ')); $ args = array ('labels' => $ labels, 'public' => true, 'hierarchical' => false, 'show_ui' => true, 'show_in_nav_menus' => true, 'query_var' => true); register_taxonomy ('actor', 'post', $ args); $ labels = array ('name' => __ ('Genres', 'your-themes-text-domain'), 'singular_name' => __ ('Genre', 'your-themes-text-domain'), ' search_items '=> __ (' Cerca i generi ',' your-themes-text-domain '),' popular_items '=> __ (' Popular Genres ',' your-themes-text-domain '),' all_items '=> __ ('Tutti i generi', 'your-themes-text-domain'), 'parent_item' => __ ('Parent Genre', 'your-themes-text-domain'), 'edit_item' => __ ('Modifica Genre ',' your-themes-text-domain '),' update_item '=> __ (' Aggiorna genere ',' your-themes-text-domain '),' add_new_item '=> __ (' Aggiungi nuovo genere ', 'your-themes-text-domain'), 'new_item_name' => __ ('New Genre', 'your-themes-text-domain'), 'separate_items_with_commas' => __ ('Separate Genres con virgole', 'your -themes-text-domain '),' add_or_remove_items '=> __ (' Aggiungi o rimuovi generi ',' your-themes-text-domain '),' choose_from_most_used '=> __ (' Scegli tra i generi più usati ',' your-themes-text-domain ')); $ args = array ('labels' => $ labels, 'public' => true, 'hierarchical' => false, 'show_ui' => true, 'show_in_nav_menus' => true, 'query_var' => true); register_taxonomy ('generi', 'post', $ args); $ labels = array ('name' => __ ('Writers', 'your-themes-text-domain'), 'singular_name' => __ ('Writer', 'your-themes-text-domain'), ' search_items '=> __ (' Search Writers ',' your-themes-text-domain '),' popular_items '=> __ (' Popular Writers ',' your-themes-text-domain '),' all_items '=> __ ('Tutti i writer', 'your-themes-text-domain'), 'parent_item' => __ ('Parent Writer', 'your-themes-text-domain'), 'edit_item' => __ ('Modifica Writer ',' your-themes-text-domain '),' update_item '=> __ (' Update Writer ',' your-themes-text-domain '),' add_new_item '=> __ (' Aggiungi nuovo writer ', 'your-themes-text-domain'), 'new_item_name' => __ ('New Writer', 'your-themes-text-domain'), 'separate_items_with_commas' => __ ('Separate scrittori con virgole', 'your -themes-text-domain '),' add_or_remove_items '=> __ (' Aggiungi o rimuovi Writers ',' your-themes-text-domain '),' choose_from_most_used '=> __ (' Scegli tra gli Scrittori più usati ',' your-themes-text-domain ')); $ args = array ('labels' => $ labels, 'public' => true, 'hierarchical' => false, 'show_ui' => true, 'show_in_nav_menus' => true, 'query_var' => true); register_taxonomy ('writers', 'post', $ args);
Ora che abbiamo registrato le nostre tre tassonomie, siamo pronti per iniziare a mostrare le nostre tassonomie e termini appena creati all'interno del nostro tema. Assicurati di modificare un post esistente per aggiungere alcuni termini fittizi nelle nuove caselle meta della tassonomia.
Inserisci il seguente codice nella parte inferiore del tuo functions.php file.
function display_post_taxonomies ($ content) if (is_single ()) $ args = array ('public' => true, '_builtin' => false); $ output = 'objects'; $ operator = 'and'; $ tassonomie = get_taxonomies ($ args, $ output, $ operatore); if ($ tassonomie) $ content. = ''; foreach ($ tassonomie come $ taxonomy) $ args = array ('orderby' => 'name', 'echo' => false, 'taxonomy' => $ taxonomy-> name, 'title_li' => ''. __ ($ taxonomy-> labels-> name, 'your-themes-text-domain'). '',' show_option_none '=> __ (' No '. $ taxonomy-> labels-> name,' your-themes-text-domain ')); $ content. = ''; restituisce $ content; add_filter ('the_content', 'display_post_taxonomies');'. wp_list_categories ($ args). '
'; $ content. = '
In poche parole, stiamo filtrando il contenuto del post per aggiungere la nostra sezione tassonomia personalizzata nella parte inferiore del post. L'uso di un filtro al posto di un tag modello significa che evitiamo di modificare specifici file modello. Non solo è più facile, ma ci consente anche di utilizzare questo codice in più temi in un modo più flessibile.
Noterai anche che questa funzione è estremamente generica; non ci riferiamo affatto alle tassonomie che abbiamo creato in precedenza. Il codice sopra coglie solo tassonomie personalizzate, chiamando il get_taxonomies
funziona con l'indice dell'array args "built_in
"impostato su false garantisce che non includiamo alcuna tassonomia WordPress in bundle.
Quindi passiamo in rassegna le nostre tassonomie e iniziamo ad aggiungere elementi HTML aggiuntivi per scopi di formattazione. All'interno del nostro ciclo stiamo anche facendo uso del wp_list_categories
funzione. Questa funzione prepara un elenco non ordinato di termini per una determinata tassonomia. Non solo gestisce la preparazione della struttura HTML ma collega automaticamente ogni singolo termine alla rispettiva pagina di archivio.
Ora, se carichi il tuo post, noterai che hai una serie di tre elenchi non ordinati, ognuno dei quali mostra un'intestazione di tassonomia con i termini associati sottostanti. Il problema è che non c'è ancora uno stile. Aggiungi il seguente codice ai tuoi temi style.css file per ridurlo un po '.
.taxonomy_container overflow: hidden; blocco di visualizzazione; chiaro: entrambi; margin-bottom: 20px; .taxonomy_container ul margin: 0px; imbottitura: 0px; list-style-type: none; .taxonomy_container> ul width: 31%; fluttuare: a sinistra; margine-destra: 3,5%; .taxonomy_container> ul: last-child margin-right: 0%; .taxonomy_title padding-left: 2px; imbottitura-fondo: 2px; border-bottom: 2px solid # 333; blocco di visualizzazione; margin-bottom: 2px; font-weight: bold; .taxonomy_container> ul li ul li padding-left: 2px; imbottitura-fondo: 3px; border-bottom: 1px punteggiato #ccc; margin-bottom: 3px; .taxonomy_container> ul li ul li: last-child border-bottom: 0px;
Là ce l'hai gente; parte uno della nostra guida per portare le tassonomie personalizzate di WordPress al livello successivo. Oggi abbiamo dato un'occhiata a quali tassonomie personalizzate sono, a cosa sono bravi ea come implementarle efficacemente nel tuo tema. Nel prossimo articolo considereremo la personalizzazione della tassonomia e i modelli di archivio dei termini.