Presentazione delle tassonomie personalizzate di WordPress 3

WordPress 3 riempie una serie di lacune importanti verso l'essere un serio sistema di gestione dei contenuti. La funzione di tassonomie personalizzate di facile utilizzo offre ai progettisti di siti alcuni potenti strumenti per costruire una buona architettura dell'informazione. Scopri quali sono le tassonomie, perché sono utili e come usarle nel tutorial di oggi!


Cos'è una tassonomia?

Le tassonomie sono metodi diversi per classificare le cose.

Le tassonomie sono metodi diversi per classificare le cose. Questo tutorial utilizza un esempio di post su diversi computer desktop, che possono essere classificati secondo una serie di criteri distinti, tra cui:

  • Quantità di RAM
  • Dimensione del disco rigido
  • Velocità della CPU
  • Tipo di CPU
  • Sistema operativo installato
  • e così via…

Una breve storia delle tassonomie di WordPress

categorie

Prima della versione 2.3, WordPress aveva solo una tassonomia generica, chiamata Categoria, per i Post. Ciò ha funzionato bene per i blog, poiché è possibile creare una categoria di livello superiore denominata "Computer desktop", con una sottocategoria denominata "RAM", che potrebbe avere sottocategorie come "Meno di 1 GB", "1 GB", "2 GB a 4 GB "e così via. Una seconda categoria secondaria di "Computer desktop" potrebbe essere chiamata "Sistema operativo", con sottocategorie come "Windows XP", "Mac OS", "Red Hat", "Ubuntu" e così via..

Quando un sistema ti permette di avere categorie che possono essere suddivise in sottocategorie, la chiamiamo struttura gerarchica. Il meglio che si potesse fare per un'architettura di sito seria prima di WordPress versione 2.3 era creare una grande gerarchia di categorie, in cui le categorie di livello superiore rappresentavano gruppi di tassonomia di grandi dimensioni.

tag

La versione 2.3 di WordPress ha aggiunto un altro tipo di tassonomia chiamato Tag. Mentre le categorie sono di solito pensate in anticipo, specifiche per i tipi di contenuti di un sito, i tag forniscono un metodo più libero e improvvisato di classificazione dei contenuti.

Ad esempio, quando si scrive un post su un determinato computer desktop, i tag consentono all'autore di digitare una o più parole chiave come "gioco", "tivo", "fan rumoroso" e così via. Queste parole chiave potrebbero non avere senso come categorie del sito, ma aiutano a fornire una classificazione aggiuntiva a un post. I visitatori del sito potrebbero quindi trovare facilmente tutti i post contrassegnati con "fan rumoroso" in seguito. La natura a mano libera dei tag, tuttavia, non ci aiuta a creare un solido sistema di classificazione attorno a valori noti come i tipi di sistemi operativi o tipi di CPU. I tag sono anche monodimensionali, non consentendo alcuna struttura gerarchica.

Tassonomie personalizzate a livello singolo

La versione 2.8 di Wordpress ha reso possibile aggiungere schemi di classificazione personalizzati con poche modifiche al codice sul tuo sito. Ciò ti ha permesso di creare un elenco di possibili sistemi operativi, separati da un elenco di possibili tipi di RAM e così via. Tuttavia, non consentiva che queste tassonomie personalizzate venissero costruite in una gerarchia simile alla tassonomia delle categorie generiche.

Tassonomie personalizzate completamente gerarchiche

Infine, WordPress versione 3 ci offre tassonomie personalizzate completamente gerarchiche. Si noti come la natura gerarchica ci consenta di semplificare la tassonomia del sistema operativo, ad esempio, inserendo tutte le varianti di Windows in una classificazione padre "Windows". Ciò consentirà ai visitatori di vedere tutti i post classificati con qualsiasi sistema operativo Windows, o consentire loro di essere più specifici e vedere solo i messaggi classificati con Windows XP, ad esempio.


Creazione di una tassonomia personalizzata

Modifica del file functions.php del tuo tema

WordPress versione 3 non ti permette di creare tassonomie personalizzate dalla schermata di amministrazione. Per definire inizialmente le tassonomie personalizzate senza un plug-in, è necessario aggiungere un po 'di codice al file functions.php del tema. Questo non è troppo difficile - segui semplicemente il mio esempio.

Per aggiungere tassonomie personalizzate, è necessario modificare il file "functions.php" che si trova all'interno della directory del tema. Per esempio, sto usando il tema "ventiten" predefinito che viene fornito con WordPress 3.0, e la mia installazione di WordPress è in una directory chiamata "wp". Il mio file functions.php è quindi in:
[Website_root] /wp/wp-content/themes/twentyten/functions.php.


Aggiunta delle tassonomie nel codice

Continueremo con l'esempio del computer desktop, aggiungendo tassonomie separate per RAM, disco rigido e sistema operativo. A questo punto, stiamo semplicemente aggiungendo le stesse tassonomie, come contenitori vuoti. Fortunatamente, possiamo aggiungere e gestire le diverse classificazioni, come "Windows XP", dal comfort della dashboard dell'amministratore.


Passaggio 1: una funzione per crearli tutti

Innanzitutto, abbiamo bisogno di costruire una funzione che crei tutte le tassonomie di cui abbiamo bisogno. Chiameremo la funzione "build_taxonomies". Aggiungiamo questa funzione alla fine del file functions.php.

 function build_taxonomies () // code andrà qui

Passaggio 2 Definire le Tassonomie

Successivamente, per ogni tassonomia che vogliamo creare, dobbiamo chiamare una particolare funzione WordPress con i parametri corretti. Ecco la funzione e i suoi parametri importanti spiegati.

 register_taxonomy ('internal_name', 'object_type', array ('hierarchical' => true | false, 'label' => 'Human Readable Name', 'query_var' => true | false, 'rewrite' => true | false));
  • internal_name: Quale sarà questa tassonomia chiamata all'interno di WordPress, nei file di database e di modello?
  • tipo di oggetto: Quali tipi di contenuti possono essere classificati con questa tassonomia? I possibili valori sono "post, pagina, link" e quindi i nomi dei tipi di post personalizzati che impareremo a creare in un futuro tutorial.
  • Poi viene una serie di parametri opzionali. Useremo i più importanti qui in questo tutorial, ma un elenco completo può essere trovato sulla pagina di riferimento Function / register_taxonomy Codex. I parametri che useremo sono:
  • gerarchica: Se "true", questa tassonomia ha abilità gerarchiche come le categorie WordPress. Se "falso", questa tassonomia si comporta in modo simile ai tag a forma libera.
  • etichetta: Questo è il nome leggibile dall'uomo utilizzato nell'interfaccia del tuo sito per etichettare la tassonomia.
  • query_var: Se "true", saremo in grado di chiedere a WordPress post che dipenderanno dalle selezioni di questa tassonomia. Ad esempio, potremmo cercare tutti i post in cui la tassonomia del sistema operativo ha selezionato "Windows".
  • riscrivere: Se "true", WordPress userà gli URL amici durante la visualizzazione di una pagina per questa tassonomia. Ad esempio, una pagina che elenca tutti i post con il sistema operativo "Windows" selezionato sarà rappresentata dal seguente url: http://domain.com/operating_system/windows

La nostra voce specifica per aggiungere la tassonomia del Sistema operativo è così:

 register_taxonomy ('operating_system', 'post', array ('hierarchical' => true, 'label' => 'Operating System', 'query_var' => true, 'rewrite' => true));

Vai avanti e aggiungilo alla funzione "build_taxonomies".

Maggiori informazioni:

"register_taxonomy" è ulteriormente definito all'interno del codice WordPress.


Passaggio 3 Chiamare la funzione di creazione di tassonomia

Abbiamo bisogno di aggiungere un'altra riga al file "functions.php" così la nostra funzione "build_taxonomies" sarà effettivamente eseguita. Ci "agganceremo" la funzione "build_taxonomies" all'evento "init" aggiungendo il seguente codice:

 add_action ('init', 'build_taxonomies', 0);

Puoi aggiungere questa linea ovunque, ma generalmente la aggiungo al di sopra della funzione che stiamo chiamando, quindi sarebbe simile a questa:

 // Codice tassonomia personalizzato add_action ('init', 'build_taxonomies', 0); function build_taxonomies () register_taxonomy ('operating_system', 'post', array ('hierarchical' => true, 'label' => 'Operating System', 'query_var' => true, 'rewrite' => true)); 

Maggiori informazioni:

Ulteriori informazioni su add_action.


Aggiunta di classificazioni alla nuova tassonomia

Una volta aggiunta correttamente la tassonomia del "Sistema operativo" al file "functions.php", questa dovrebbe apparire come un nuovo elemento nel pannello "Post" della tua dashboard. Fai clic sul nome della tassonomia per aggiungere e modificare le classificazioni che desideri includere.

Ora puoi aggiungere e modificare i sistemi operativi proprio come faresti con le categorie generiche.


Aggiungere più tassonomie

Se si desidera aggiungere le tassonomie "RAM" e "Disco rigido" da seguire insieme all'esempio, è sufficiente aggiungere quanto segue al file functions.php:

 register_taxonomy ('ram', 'post', array ('hierarchical' => true, 'label' => 'RAM', 'query_var' => true, 'rewrite' => true)); register_taxonomy ('hard_drive', 'post', array ('hierarchical' => true, 'label' => 'Hard Drive', 'query_var' => true, 'rewrite' => true));

Una volta terminato, la sezione modificata del tuo file functions.php sarà simile a questa:

 // Codice tassonomia personalizzato add_action ('init', 'build_taxonomies', 0); function build_taxonomies () register_taxonomy ('operating_system', 'post', array ('hierarchical' => true, 'label' => 'Operating System', 'query_var' => true, 'rewrite' => true)); register_taxonomy ('ram', 'post', array ('hierarchical' => true, 'label' => 'RAM', 'query_var' => true, 'rewrite' => true)); register_taxonomy ('hard_drive', 'post', array ('hierarchical' => true, 'label' => 'Hard Drive', 'query_var' => true, 'rewrite' => true)); 

Creare un post usando la tua nuova tassonomia

Crea alcuni nuovi post e vedrai le nuove opzioni di tassonomia visualizzate nella schermata Modifica post. Seleziona le classificazioni che ritieni applicabili ai tuoi post.


Mostrando le varie tassonomie di un post

Nulla di ciò che abbiamo fatto finora può essere visto dai visitatori del tuo sito. Vorremmo che i post mostrassero le tassonomie personalizzate in cui sono classificati, proprio come i post in genere rivelano le loro categorie e tag.

Per fare ciò, abbiamo solo bisogno di fare una semplice aggiunta al ciclo in alcuni file modello.


Visualizzazione delle classificazioni di tassonomia su singole pagine

Nel tema venti, e molti altri, le categorie e i tag di un post sono elencati sotto il corpo del testo. Aggiungeremo le informazioni sulla tassonomia personalizzate, se presenti, appena prima della categoria e delle informazioni sui tag.

Per far sì che ciò accada, dovremo modificare il file modello "single.php", che viene normalmente chiamato per visualizzare un singolo post. Il mio file single.php è: [website_root] /wp/wp-content/themes/twentyten/single.php.


Passaggio 1 Trova il posto giusto per aggiungere codice

In single.php, trova la linea con:

Questo appare poco prima del:

In venti, questo div contiene le categorie, i tag, il permalink e altri dati per il post corrente. Inseriremo le nostre informazioni sulla tassonomia proprio sopra questo div.


Passaggio 2 Recuperare le informazioni sulla tassonomia relative alla posta corrente

Compilare alcune variabili per conservare l'output di informazioni sulla tassonomia e le diverse informazioni sulla tassonomia che potremmo aspettarci di trovare.

 ID, 'operating_system', 'Sistemi operativi): ',', ', ");

Qui, chiamiamo la funzione WordPress "get_the_term" con i seguenti parametri:

  • $ Post-> ID : l'id del post corrente.
  • 'sistema operativo' : il nome della tassonomia personalizzata che stiamo verificando per i dati. Chiediamo se al post corrente sono state assegnate classificazioni nella tassonomia 'operating_system'.
  • 'Sistemi operativi)' : Se viene restituito qualcosa, questa è la stringa che ci piacerebbe avere di fronte.
  • ',' : Se vengono restituiti più articoli, questa è la stringa con cui vorremmo averli separati.
  • " : Se viene restituito qualcosa, questa è la stringa che ci piacerebbe avere dietro. In questo caso, non vogliamo aggiungere nulla dietro al risultato.

Faremo lo stesso per le altre due tassonomie che potremmo aspettarci di contenere i dati:

 $ ram_list = get_the_term_list ($ post-> ID, 'ram', 'Opzione (s) di RAM: ',', ', "); $ hd_list = get_the_term_list ($ post-> ID,' hard_drive ','Opzione (i) disco rigido: ',', ', ");

Maggiori informazioni:

Ulteriori informazioni su "get_the_term_list".


Passaggio 3 Formattare i risultati da Classificazioni, se presenti

Controlla i risultati in ciascuna delle tre possibili tassonomie. Se esistono, aggiungili al nostro output, così come un interruzione di riga.

 // Aggiungi la lista OS se questo post è stato così taggato if ("! = $ Os_list) $ taxo_text. =" $ Os_list
\ n "; // Aggiungi l'elenco RAM se questo post è stato taggato così ("! = $ ram_list) $ taxo_text. = "$ ram_list
\ n "; // Aggiungi l'elenco HD se questo post è stato taggato se ("! = $ hd_list) $ taxo_text. = "$ hd_list
\ n ";

Passaggio 4 Visualizzare i risultati della classificazione, se presenti

Controlla se i passaggi precedenti hanno dato come risultato qualsiasi informazione sulla tassonomia. Se esistono informazioni sulla tassonomia, la restituiremo racchiusa in un div di "entry-utility" di classe.

 // Fornire informazioni sulla tassonomia se ce ne fossero // NOTA: non apriremo nemmeno div se non c'è nulla da mettere al suo interno. if ("! = $ taxo_text) ?> 

Passaggio 5 Controllare i risultati

Visita una pagina di post e dovresti visualizzare le classificazioni di tassonomia personalizzate elencate di seguito.


Visualizzazione di un elenco di post per classificazione tassonomica

Ora i nostri post individuali ci dicono quali tassonomie personalizzate sono stati classificati. Quando elencano una classificazione di tassonomia personalizzata, forniscono anche un link per elencare tutti i post sotto quella classificazione. Ad esempio, facendo clic sul link "Mac OS" accanto a "Sistemi operativi" sotto il nostro post verranno teoricamente elencati tutti i post con la classificazione del sistema operativo "Mac OS".

Tuttavia, ciò non avviene immediatamente con WordPress versione 3. Dovremo creare un file modello personalizzato per la visualizzazione degli archivi di tassonomia affinché funzioni. WordPress consente già ai visitatori di visualizzare tutti i post assegnati a una particolare categoria o tutti i post con un determinato tag. Quando avremo finito, saremo in grado di visualizzare anche tutti i post assegnati a particolari classificazioni nelle nostre tassonomie personalizzate.

Per far sì che ciò accada, dovremo creare il file modello "tassonomy.php". WordPress proverà a utilizzare questo file ogni volta che vorrà elencare i post in una tassonomia personalizzata.


Passo 1

Apri il file "category.php", copia il suo contenuto e incollalo in un nuovo file chiamato "taxonomy.php". Salva taxonomy.php nella directory dei temi. Ad esempio, il mio file taxonomy.php è in:
[Website_root] /wp/wp-content/themes/twentyten/taxonomy.php.


Passaggio 2 Ottieni informazioni sulla classificazione della tassonomia corrente

Nel file taxonomy.php, abbiamo bisogno di ottenere informazioni sulla tassonomia elencata. Probabilmente vorremmo il nome e la descrizione (se ce ne sono) per la classificazione selezionata.

Poco sotto , aggiungi la seguente riga:

 $ term = get_term_by ('slug', get_query_var ('term'), get_query_var ('tassonomia'));

Ciò ottiene tutte le informazioni sulla tassonomia che ha chiamato questa pagina e la restituisce come un oggetto nella variabile $ term. Ad esempio, la classificazione "Mac OS" restituisce un oggetto in quanto tale:

 stdClass Object ([term_id] => 13 [name] => Mac OS [slug] => mac-os [term_group] => 0 [term_taxonomy_id] => 22 [tassonomia] => operating_system [description] => [parent] => 0 [count] => 2)

Passaggio 3 Visualizza Nome e descrizione della classificazione

Vogliamo cambiare il nome della pagina per dire ai visitatori cosa stanno guardando. Da quando abbiamo iniziato con il template category.php, possiamo prendere la linea che usava per stampare il nome della categoria e cambiarla un po 'per darci il nome della pagina desiderata e, se applicabile, la descrizione.

Cambia la seguente riga da category.php:

 printf (__ ('Archivi di categoria:% s', 'ventiten'), ''. single_cat_title (", false)."');

Per leggere come segue:

 printf (__ ('Messaggi classificati sotto:% s', 'ventiten'), ''. $ term_name. '');

Ciò modifica il testo statico che inizia la riga e quindi inserisce il nome della classificazione. (Nota: per una corretta localizzazione, dovremmo aggiungere "Post classificati sotto:" correttamente al file languages ​​/ twentyten.pot. Questo è al di fuori dello scopo di questo tutorial, ma sii consapevole della trasgressione qui.)

Quindi aggiungere il seguente:

 if ("! = $ term_descr) echo"

$ term_descr

\ n ";

Se esiste una descrizione per questa classificazione, verrà visualizzata appena sotto il titolo.

Dopo aver apportato le modifiche a taxonomy.php, visita uno dei tuoi post a cui è stata assegnata una classificazione di tassonomia personalizzata. A causa del nostro precedente lavoro nel file "single.php", il post dovrebbe mostrare le classificazioni personalizzate sotto di esso. Basta fare clic su una di quelle classificazioni per vedere l'elenco tassonomia al lavoro.


Conclusione

Spero che questo tutorial spieghi chiaramente quali sono le tassonomie e ti ha mostrato come utilizzarle in WordPress 3 come un potente strumento organizzativo. Spero di fornire un tutorial di follow-up che spieghi presto i tipi di post personalizzati di WordPress, la loro stretta relazione con le tassonomie personalizzate e come usarli. Grazie mille per aver dedicato del tempo a visitare Nettuts!