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.!
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:
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..
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..
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.
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 termeprénom
limace
term_group
est un champ non utilisé actuellement par WordPress, vous pouvez donc l'ignorer en toute sécurité.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 tableterm_id
représente l'ID du terme, lié à son enregistrement dans wp_termstaxonomie
est le nom de la taxonomie dans laquelle le terme estla description
parent
fait référence au terme parent du terme, si la taxonomie est hiérarchique et qu’il en a uncompter
est le nombre de messages avec le termeDans 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
.
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
tableterm_taxonomy_id
est lié au même champ dans le wp_term_taxonomy
tableterm_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.
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.