Codex

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

it:Tassonomia in WordPress

In WordPress 2.3 è stato introdotto per la prima volta l'attuale schema per le tassonomie. Qualunque plugin che si basa sulla vecchia struttura utilizzata in WordPress 2.2 non funzionerà; i plugin che utilizzano le API delle categorie invece dovrebbero funzionare correttamente.

Questa nuovo schema sostituisce le tabelle categories, post2cat e link2cat con tre nuove tabelle che sono molto più flessibili.

  1. wp_terms
  2. wp_term_relationships
  3. wp_term_taxonomy

wp_terms

La prima tabella è quella dei termini. Contiene le informazioni di base sui singoli termini.

 term_id bigint(20) unsigned NOT NULL auto_increment,
 name varchar(200) NOT NULL default '',
 slug varchar(200) NOT NULL default '',
 term_group bigint(10) NOT NULL default 0,
 PRIMARY KEY  (term_id),
 UNIQUE KEY slug (slug),
 KEY name (name)
  • term_id è un ID univoco per il termine.
  • name è semplicemente il nome del termine.
  • slug è univoco ed è il nome ridotto nella forma amichevole per un URL.
  • term_group è un mezzo per raggruppare termini simili.

wp_term_taxonomy

Un termine da solo non è una categoria o un tag. Bisogna assegnargli un contesto attraverso la tabella term_taxonomy.

 term_taxonomy_id bigint(20) unsigned NOT NULL auto_increment,
 term_id bigint(20) unsigned NOT NULL default 0,
 taxonomy varchar(32) NOT NULL default '',
 description longtext NOT NULL,
 parent bigint(20) unsigned NOT NULL default 0,
 count bigint(20) NOT NULL default 0,
 PRIMARY KEY  (term_taxonomy_id),
 UNIQUE KEY term_id_taxonomy (term_id,taxonomy),
 KEY taxonomy (taxonomy)

La tabella term_taxonomy table colloca un termine all'interno di una tassonomia. Questo è ciò che fa di un termine una categoria, un tag o parte di una tassonomia personalizzata (o combinazione di tassonomie).

  • term_id è l'ID di un termine nella tabella dei termini.
  • taxonomy designa la tassonomia nella quale il termine risiede. Le tassonomie predefinite sono category, link_category e post_tag.
  • term_taxonomy_id è un ID univoco per la coppia termine+tassonomia.

Il resto dei campi fornisce informazioni sul termine nel contesto della tassonomia.

  • Il campo parent tiene traccia delle relazioni gerarchiche tra i termini nella tassonomia.
  • description fornisce una descrizione del termine specifica della tasonomia.
  • count traccia quanti oggetti sono associati con la coppia termine+tassonomia. Ad esempio, dato un termine della tassonomia category, count traccia quanti post si trovano in quella specifica categoria.

wp_term_relationships

L'ultima tabella, term_relationships, mette in relazione oggetti come post o link ad un term_taxonomy_id della tabella term_taxonomy.

 object_id bigint(20) unsigned NOT NULL default 0,
 term_taxonomy_id bigint(20) unsigned NOT NULL default 0,
 term_order int(11) NOT NULL default 0,
 PRIMARY KEY  (object_id,term_taxonomy_id),
 KEY term_taxonomy_id (term_taxonomy_id)
  • object_id è l'ID di un post o link.
  • term_taxonomy_id è un ID della tabella term_taxonomy che designa una particolare coppia termine+tassonomia.
  • term_order permette un ordinamento dei termini per un oggetto (si veda ticket #5857)