Languages: English • Italiano • Português do Brasil • (Add your language)
Tassonomia è una di quelle parole che la gente non sente o non usa mai. Fondamentalmente, una tassonomia è un modo per raggruppare le cose.
Ad esempio, supponiamo di avere un gruppo di diversi tipi di animali. È possibile raggrupparli secondo varie caratteristiche e poi assegnare dei nomi a tali gruppi. Questo concetto viene spesso incontrato da coloro che frequentano lezioni di biologia ed è conosciuto come Tassonomia linneana.
In WordPress, una "tassonomia" è un meccanismo per raggruppare post (o collegamenti o tipi di post personalizzati).
Tre tassonomie sono già integrate in WordPress.
La tassonomia 'category' permette di raggruppare i post ordinandoli in varie categorie. Queste categorie possono essere visualizzate sul sito usando il tipo di URL '/category/name'. Di solito le categorie sono predefinite e di ampia portata.
La tassonomia 'post_tag' è simile alle categorie, ma un po' più libera. I tag possono essere inventati sul momento, semplicemente digitandoli. Possono essere visualizzati sul sito usando il tipo di URL '/tag/name'. I post spesso hanno numerosi tag in quali vengono generalmente mostrati vicino ad essi o nella forma di tag cloud (nuvola di tag).
La tassonomia 'link_category' permette di categorizzare i propri link. Normalmente queste sono utilizzate solo internamente, per motivi organizzativi, e non sono esposte sul sito stesso. Sono comode per definire gruppi di link da mostrare in sidebar e simili.
A partire da WordPress 2.3, è possibile creare le proprie tassonomie personalizzate, ma raramente questa funzionalità è stata usata fino a prima della versione 2.9. In realtà, si tratta di un mezzo estremamente potente per raggruppare vari elementi in tutti i possibili modi.
Il plugin Matt's Community Tags utilizza le tassonomie per definire "people" come una tassonomia per gli allegati. Permette di segnare i nomi delle persone nelle immagini, e in tal modo è possibile mostrare sul sito fotografie di persone sotto l'URL '/person/name'.
Per registrare una tassonomia si usa la funzione register_taxonomy().
Ecco un esempio per registrare la tassonomia "people":
function people_init() { // creare una nuova tassonomia register_taxonomy( 'people', 'post', array( 'label' => __( 'People' ), 'rewrite' => array( 'slug' => 'person' ), 'capabilities' => array( 'assign_terms' => 'edit_guides', 'edit_terms' => 'publish_guides' ) ) ); } add_action( 'init', 'people_init' );
Qui viene definita la tassonomia "people". È impostata per lavorare con gli articoli (post) e viene definito anche uno slug per la riscrittura in modo tale da avere nell'URL '/person/' invece di '/people/'. La riga 'capabilities' è opzionale. Senza di essa, WordPress darà facoltà di utilizzare questa tassonomia agli stessi utenti che hanno facoltà di utilizzare i post. Come mostrato sopra, questo permetterà a qualunque utente con la capacità personalizzata "edit_guides" di assegnare la tassonomia ad un post e qualunque utente con la capacità personalizzata "publish_guides" di creare elementi della nuova tassonomia.
Le capacità delle tassonomie includono assign_terms, edit_terms, manage_terms (mostra la tassonomia nel menù del pannello di amministrazione) e delete_terms.
Una volta aggiunta la tassonomia, nella schermata di modifica dei post si vedrà un nuovo meta box, simile a quello dei tag, che permette di aggiungere i termini della nuova tassonomia ai post.
Se la tassonomia creata non viene legata ai post, non si vedrà l'interfaccia di cui sopra. Le tassonomie sono generiche, dopotutto, e se ne può creare una per ogni tipo di oggetto. Per aggiungere termini ad un oggetto usando la propria tassonomia, si deve fare uso della funzione wp_set_object_terms(). Ecco un esempio per aggiungere il termine "Bob" al post con ID 123 nella tassonomia "person":
wp_set_object_terms( 123, 'Bob', 'person' );
Come si può vedere, è un'operazione semplice. Il secondo parametro può essere anche un array di termini da aggiungere tutti insieme, se vi è la necessità.
La funzione wp_tag_cloud() accetta anche un parametro "taxonomy", se si vuole mostrare una nuvola di termini della propria tassonomia.
Se si desidera avere una lista personalizzata nel proprio tema, si può passare il nome della tassonomia alla funzione the_terms() nel Loop, in questo modo:
the_terms( $post->ID, 'people', 'People: ', ', ', ' ' );
Ciò mostra la lista di persone allegate ad ogni post.
Creare una tassonomia generalmente crea automaticamente una variabile di query speciale attraverso la classe WP_Query, che si può usare per recuperare i post basandosi su quella tassonomia. Ad esempio, per stilare un elenco di post che hanno il termine "Bob" nella tassonomia "person", si userà:
$query = new WP_Query( array( 'person' => 'bob' ) );
oppure, per argomenti più complessi:
$args = array( 'tax_query' => array( array( 'taxonomy' => 'person', 'field' => 'slug', 'terms' => 'bob' ) ) ); $query = new WP_Query( $args );
Se il proprio sito utilizza permalink personalizzati, è necessario svuotare la struttura dei permalink dopo aver modificato le proprie tassonomie; in caso contrario si vedrà l'errore "Pagina non trovata". La struttura dei permalink è automaticamente svuotata quando si accede alla pagina Impostazioni > Permalink nella propria bacheca di WordPress.