Une taxonomie définit la nature du classement — par catégorie, par marque, par région — mais ce classement reste abstrait tant qu’aucune valeur concrète n’a été créée à l’intérieur ; c’est ce que représente un terme.
Fonctionnement dans WordPress
En base de données, un terme est séparé en deux enregistrements liés : une ligne dans wp_terms (nom, slug) et une ligne dans wp_term_taxonomy qui précise à quelle taxonomie il appartient et, le cas échéant, son terme parent. Cette séparation permet à un même nom (« Bordeaux ») de désigner un terme différent selon la taxonomie concernée (une ville ou un vin), sans collision. Les fonctions get_term(), wp_insert_term() et wp_set_object_terms() manipulent ces relations.
Exemple
wp_set_object_terms( $post_id, array( 'cuisine' ), 'categorie' );
Bon à savoir
L’identifiant retourné par la plupart des fonctions est le term_id, mais certaines opérations internes utilisent le term_taxonomy_id, distinct dès qu’un même terme est partagé entre plusieurs taxonomies — une subtilité source d’erreurs lors de requêtes SQL directes.
Bon à savoir
Un terme peut aussi porter ses propres métadonnées depuis WordPress 4.4, via la table wp_termmeta et les fonctions get_term_meta() ou update_term_meta(), ce qui permet par exemple d’attacher une image ou une description enrichie à une catégorie.
Le nombre d’usages d’un terme, stocké dans la colonne count de wp_term_taxonomy, ne se recalcule pas toujours instantanément après une modification en masse des contenus associés ; une commande de maintenance dédiée permet au besoin de forcer sa mise à jour.