Classer des articles par thème, des produits par marque, ou des lieux par région : ces besoins de classification très variés reposent tous, dans WordPress, sur une seule et même architecture générique plutôt que sur des solutions ad hoc.
Fonctionnement dans WordPress
WordPress fournit deux taxonomies natives, category (hiérarchique) et post_tag (à plat), mais permet d’en déclarer de nouvelles avec register_taxonomy(), en les associant à un ou plusieurs types de contenu, natifs ou personnalisés. Chaque taxonomie stocke ses termes dans les tables partagées wp_terms et wp_term_taxonomy, cette dernière précisant à quelle taxonomie et à quel nombre d’usages chaque terme appartient.
Exemple
register_taxonomy( 'marque', 'produit', array(
'label' => 'Marques',
'hierarchical' => false,
'public' => true,
) );
Bon à savoir
Une taxonomie hiérarchique se comporte comme les catégories dans l’interface (menu déroulant à cocher), tandis qu’une taxonomie non hiérarchique reprend l’interface à saisie libre des étiquettes ; ce choix se fait une fois pour toutes à la déclaration et conditionne l’expérience d’édition.
Une même taxonomie peut être rattachée à plusieurs types de contenu à la fois : une taxonomie « Marque » créée pour un type produit peut tout aussi bien s’appliquer à un type avis-client, ce qui évite de dupliquer la logique de classification entre plusieurs types voisins.
L’argument show_ui conditionne l’apparition d’une interface de gestion dans l’administration ; certaines taxonomies internes, utilisées uniquement par du code (comme nav_menu), restent volontairement masquées à l’utilisateur final tout en fonctionnant exactement comme n’importe quelle autre taxonomie déclarée.