Suite de la description des tables de la Base de Données WordPress avec les tables permettant de gérer les commentaires, les options, les taxonomies et les liens.
Pour chaque table, son utilité et le lien entre l’administration WordPress et le contenu des tables de la Base de Données sont mis en évidence.

Les tables des commentaires (wp_comments et wp_commentmeta)
La table wp_comments
Les commentaires saisis par un utilisateur à propos d’un article ou d’une page sont stockés dans la table wp_comments (rappel, nous utilisons le préfixe de table par défaut « wp_ », pour faciliter la compréhension, mais il est préférable de changer le préfixe de tables).
Voici un commentaire saisi en bas d’un article :

Et voici ce même commentaire stocké dans la Base de Données :

On remarquera qu’en plus du commentaire, on trouve, ici encadré en rose, l’identifiant du « post » (article ou page) où le commentaire a été saisi, ainsi que des informations sur l’auteur du commentaire.
La table wp_commentmeta
De la même façon qu’il existe des tables wp_usermeta et wp_postmeta, il existe une table wp_commentmeta pour ajouter des informations supplémentaires aux commentaires.
Voici un exemple d’utilisation par l’extension Akismet qui filtre les commentaires pour détecter les indésirables (spam) :

Description des tables wp_comments et wp_commentmeta dans le diagramme de tables :

La table des options (wp_options)
On pourrait renommer cette table « wp_paramètres ». En effet, on y trouve l’essentiel du paramétrage de l’installation WordPress, mais aussi des extensions (plugins).
Regardons par exemple les réglages généraux (Option « Réglages » du menu d’administration) :

Ces paramètres se retrouvent au début de la table wp_options :

Prenons l’exemple du paramétrage de l’extension ‘pastacode‘.
Les réglages de l’extension dans l’administration WordPress :

Les mêmes paramètres dans la table wp_options :

Description de la table wp_options dans le diagramme de tables :

À noter : la table wp_options n’a aucun lien avec une autre table.
Haut de pageLes tables de taxonomie (wp_terms, wp_taxonomy, wp_term_relationships et wp_termmeta)
Les taxonomies permettent de regrouper des articles suivant des typologies. Deux taxonomies existent en standard : les catégories et les étiquettes. Par programme, il est possible de créer ses propres taxonomies (taxonomie personnalisée).
Il est important de ne pas confondre les taxonomies (catégorie, étiquette, taxonomies personnalisées) et les termes d’une taxonomie (une catégorie, une étiquette, une taxonomie personnalisée).
Une taxonomie peut être associée à un ou plusieurs articles, articles personnalisés (‘custom post type’) ou liens.
La gestion des taxonomies dans la Base de Données est un peu complexe car :
- à un article peut être associé un nombre indéfini de taxonomies différentes (typiquement ‘catégories’ et ‘étiquettes’),
- à un article peut être associé un nombre indéfini de termes d’une même taxonomie (par exemple, plusieurs étiquettes),
- un même terme de taxonomie (exemple, un type de catégorie) peut être associé à plusieurs articles.
Pour gérer les taxonomies, WordPress utilise quatre tables dont on va analyser le fonctionnement.
Création d’une nouvelle catégorie dans l’administration WordPress :

Effet de la création d’un terme de taxonomie sur les tables WordPress :
Un enregistrement est créé dans la table wp_terms qui contient l’ensemble des termes de toutes les taxonomies :

Description des champs de la table wp_terms :
- term_id : identifiant unique pour chaque terme (indépendamment de la taxonomie à laquelle il appartient),
- name : le nom du terme,
- slug : identifiant unique de terme de taxonomie qui peut être utilisé dans une url; par exemple : l’url pour sélectionner les articles de la catégorie hébergement peut être de la forme : ‘http://localhost/demo/category/hebergement/’.
- term group : permet de regrouper des termes similaires,
Avec cette seule table, nous savons qu’un terme de taxonomie a été créé , mais nous ignorons à quelle taxonomie elle se rapporte (catégorie, étiquette, taxonomie personnalisée ?).
Pour cela, WordPress a créé la table wp_terms_taxonomy. Cette table définit à quelle taxonomie appartient un terme. Dans notre exemple, on constate que le terme d’identifiant « 16 » appartient à la taxonomie « category » :
Description des champs de la table wp_terms_taxonomy :
- term_taxonomy_id : identifiant unique pour une paire ‘terme + taxonomie’ ( point d’entrée unique dans la table wp_term_taxonomy),
- term_id : l’identifiant du terme dans la table wp_terms,
- taxonomy : la taxonomie à laquelle appartient le terme (ici, il s’agit d’un terme de catégorie),
- description : la description du terme,
- parent : permet de gérer la hiérarchie des termes dans une catégorie (par exemple : catégories et sous catégories),
- count : permet de savoir combien de posts utilisent ce terme de taxonomie.
Affectation d’une catégorie à un article :
Créons un article qui va utiliser la catégorie ‘catégorie de démonstration’ :

On peut vérifier que les deux tables wp_terms et wp_terms_taxonomy ne sont pas modifiées. En effet, nous n’avons ni créé, ni modifié ni supprimé un terme ou une taxonomie, nous avons simplement associé un terme de catégorie à un article (post).
C’est la table wp_term_relationships qui est utilisée pour stocker l’information suivant laquelle un terme de taxonomie a été associée à un article ( « catégorie de démonstration » associé au post d’identifiant « 1925 ») :

Description des champs de la table wp_term_relationships :
- object_id : identifiant de l’article ou du lien à qui le terme de taxonomie a été associé,
- term_taxonomy_id : identifiant d’une paire ‘terme + taxonomie’ dans la table wp_term_taxonomy,
- term_order : permet de gérer un ordre des termes de taxonomie pour un post ou un lien.
La table wp_termmeta
À partir de la version WordPress 4.4 des meta données peuvent être ajoutées aux catégories. Techniquement, cela a entraîné la création d’une douzième table, la table wp_termmeta :

Description des champs de la table wp_termmeta :
- meta_id : identifiant de la meta donnée,
- term_id : identifiant de la taxonomie à laquelle la meta est associée,
- meta_key : la clé (le nom) de la meta,
- meta_value : la valeur associée à la meta.

L’article ci-dessous décrit comment associer des meta-données à une catégorie :
Description des tables wp_terms, wp-term_taxonomy, wp_term-relationships et wp_termmeta dans le diagramme de tables :

La table des liens (wp_links)
Jusqu’à la version WordPress 3.5, il était possible de constituer des listes de liens et de les afficher (ce qu’on appelle des blogrolls). Ces liens étaient stockés dans la table wp_links.
Il est toujours possible d’utiliser cette fonction en activant le ‘gestionnaire de liens’ (link manager) via une extension (plugin) fournie par WordPress, soit en ajoutant le code suivant dans le fichier functions.php :
Après activation du gestionnaire de liens, une nouvelle entrée apparaît dans le menu principal de l’administration :

Ajoutons un lien :


Ces informations sont stockées dans la table wp_links :

Description de la table wp_links dans le diagramme de tables :

À noter : la table wp_links n’a aucun lien avec une autre table.
Haut de pageLa table wp_blogmeta
La version 5.1, sortie en février 2019, ajoute la table wp_blogmeta qui permet de gérer les données communes à plusieurs sites d’un réseau de sites.