Codex

Interested in functions, hooks, classes, or methods? Check out the new WordPress Code Reference!

it:Tassonomie

Cos'è una tassonomia?

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).

Tassonomie predefinite

Tre tassonomie sono già integrate in WordPress.

Categoria

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.

Tag

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).

Categoria dei link

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.

Tassonomie personalizzate

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.

Esempio

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'.

Registrare una tassonomia

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.

Utilizzare la tassonomia

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à.

Nuvole

La funzione wp_tag_cloud() accetta anche un parametro "taxonomy", se si vuole mostrare una nuvola di termini della propria tassonomia.

Elencare i termini

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.

Interrogazione per tassonomia

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 );

Errore 404

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.

Risorse esterne