Comprendre et utiliser les taxonomies et les termes dans WordPress

Les taxonomies sont ce qui emmène WordPress au-delà d’une simple plateforme de blogs et dans les domaines d’un CMS. 

Mais comment sont-ils stockés dans la base de données?

Les taxonomies et les termes sont une fonctionnalité WordPress puissante qui vous permet d'ajouter beaucoup plus de flexibilité à vos sites. Ils sont liés à deux autres types de contenu: les articles et les liens, et la structure de la base de données signifie qu’il s’agit d’une relation un à plusieurs: un article peut avoir plusieurs termes et plusieurs taxonomies, et un terme peut être attribué à plusieurs articles ou articles. liens.

Je commencerai par les définir, car comme dans tant de choses dans WordPress, la terminologie peut être déroutante.!

Définitions

Taxonomies

Une taxonomie est un système de catégorisation ou de classification de choses, généralement hiérarchique. La taxonomie la plus célèbre est la taxonomie de Linné qui est utilisée pour classifier les êtres vivants.

Dans WordPress, les taxonomies permettent de classer vos données et de les regrouper en ensembles et sous-ensembles..

WordPress est livré avec trois taxonomies intégrées dans:

  • Catégorie
  • étiquette
  • catégorie de lien

Les catégories et les balises sont un peu comme les articles et les pages en ce sens qu’elles ont le même type de contenu (taxonomies) mais se comportent différemment par défaut, en ce sens que les catégories sont hiérarchiques et que les balises ne sont pas.

La taxonomie des catégories de liens fonctionne de la même manière que les balises et peut théoriquement être utilisée pour tout type d'objet, mais par défaut, elle n'est pas affichée dans l'écran de post-édition et se trouve dans l'écran de modification de liens si les liens ont été activés..

Vous pouvez également ajouter autant de taxonomies supplémentaires que vous le souhaitez à l'aide de taxonomies personnalisées. Celles-ci se comportent alors de la même manière que les catégories et les balises et comportent des termes. Chacune de vos taxonomies a alors le même statut que l'une des taxonomies intégrées. Cela ressemble à une comparaison entre les publications et les types de publication personnalisés..

termes

Chaque taxonomie comportera des termes que vous utiliserez pour trier vos données. Une catégorie est simplement un terme de la taxonomie de la catégorie, et une étiquette est un terme de la taxonomie de l'étiquette. Lorsque vous créez des taxonomies, vous créez ensuite des termes pour vos taxonomies, soit via le tableau de bord WordPress, soit à l'aide de la fonction wp_insert_term ()..

Les termes peuvent être très puissants lorsqu'ils sont combinés avec des requêtes personnalisées: vous pouvez créer des fichiers de modèles personnalisés dans vos thèmes ou plug-ins pour afficher des messages avec plusieurs termes, les trier par termes, identifier les termes dans différentes taxonomies et bien plus encore..

Comment WordPress stocke les taxonomies et les termes

Comme je l'ai décrit dans le didacticiel sur les relations entre données, WordPress utilise une relation plusieurs à plusieurs. Cette relation est créée à l'aide de trois tables:

  • wp_term_relationships
  • wp_term_taxonomy
  • wp_terms

Ces tableaux sont présentés ci-dessous, ainsi que les tableaux auxquels ils sont liés., wp_posts et wp_links:

Regardons chacune des tables et son fonctionnement.

La table wp_terms

le wp_terms table stocke tous les termes individuels pour vos catégories, balises, catégories de liens et taxonomies personnalisées. Il ne comporte que quatre champs:

  • term_id est l'identifiant unique pour le terme
  • prénom
  • limace
  • term_group est un champ non utilisé actuellement par WordPress, vous pouvez donc l'ignorer en toute sécurité.

La table wp_term_taxonomy

le wp_term_taxonomy table stocke plus de données sur les termes ainsi que sur les taxomies dont ils font partie. Il comporte six champs:

  • term_taxonomy_id stocke un identifiant pour l'enregistrement dans cette table
  • term_id représente l'ID du terme, lié à son enregistrement dans wp_terms
  • taxonomie est le nom de la taxonomie dans laquelle le terme est
  • la description
  • parent fait référence au terme parent du terme, si la taxonomie est hiérarchique et qu’il en a un
  • compter est le nombre de messages avec le terme

Dans de nombreuses installations WordPress, il y aura un enregistrement dans wp_term_taxonomy tableau pour chaque terme de la wp_terms tableau, mais dans certains cas, vous aurez plus d’un enregistrement pour chaque terme. Cela se produit lorsque vous créez deux termes avec le même nom et le même slug dans différentes taxonomies, ce qui signifie que vous pouvez créer une requête pour générer des publications avec ce terme dans plusieurs taxonomies..

Cela signifie que la relation entre ces deux tables est un-à-plusieurs: un enregistrement dans la wp_terms table peut être liée à plusieurs enregistrements dans le wp_term_taxonomy table, mais chaque enregistrement dans wp_term_taxonomy est lié à un seul enregistrement dans wp_terms.

La table wp_term_relationships

le wp_term_relationships table est crucial pour créer la relation plusieurs-à-plusieurs entre objets et termes. Il n'y a que trois champs:

  • object_id est lié à post_id dans le wp_posts table ou link_id dans le wp_links table
  • term_taxonomy_id est lié au même champ dans le wp_term_taxonomy table
  • term_order est l'ordre dans lequel les termes ont été ajoutés à un objet. Ceci n'est utilisé que si vous avez spécifié que l'argument de tri est vrai lorsque vous avez enregistré la taxonomie - la valeur par défaut est false et la valeur par défaut de ce champ est 0..

Comme chaque objet peut être associé à plusieurs enregistrements de la wp_term_relationships table, et ainsi peut chaque terme, cela crée la relation plusieurs-à-plusieurs.

Résumé

La relation entre les objets (c'est-à-dire les messages et les liens) et les termes est très puissante, en partie parce que c'est la seule relation plusieurs-à-plusieurs utilisée par WordPress.. 

Comprendre comment cette relation fonctionne et où les données de clé sont stockées vous aidera à comprendre comment fonctionnent les taxonomies et les termes, et à utiliser les fonctions qui leur sont associées.