WordPress utilise une base de données pour stocker, récupérer et afficher tout le contenu que vous créez sur votre site web. Cela inclut les articles, les pages, les commentaires, et bien plus encore.
La base de données est également utilisée pour stocker des informations sur les utilisateurs de votre site web, ainsi que diverses options du site qui permettent son fonctionnement.
Comme vous l’avez appris dans la leçon sur les serveurs web, WordPress utilise MySQL. MySQL est un système de gestion de bases de données gratuit et open source, utilisé par de nombreuses applications web populaires.
Interagir avec votre base de données WordPress
Il existe plusieurs façons d’interagir directement avec votre base de données WordPress.
La majorité des environnements de développement local ou des hébergeurs utilisent un outil gratuit appelé phpMyAdmin. phpMyAdmin est un outil web qui vous permet d’interagir avec votre base de données WordPress à l’aide d’un navigateur web.
Une alternative à phpMyAdmin est un outil appelé Adminer. Adminer est un fichier PHP unique que vous pouvez téléverser sur votre site web et qui fournit une interface similaire à celle de phpMyAdmin. Certains hébergeurs et environnements de développement local préfèrent utiliser Adminer plutôt que phpMyAdmin.
Enfin, si vous n’avez accès à aucun de ces outils, vous pouvez également installer une extension appelée SQL Buddy.
Il s’agit d’une extension WordPress gratuite qui fournit une interface similaire à celles de phpMyAdmin et d’Adminer, mais qui s’exécute dans votre tableau de bord WordPress.
Si vous décidez d’utiliser SQL Buddy, n’oubliez pas de désactiver et de supprimer l’extension lorsque vous avez terminé. La laisser installée sur votre site web peut présenter un risque de sécurité.
Tables de la base de données
Pour les besoins de cette leçon, nous utiliserons PhpMyAdmin pour examiner les tables de la base de données.
La base de données WordPress est composée de nombreuses tables. Chaque table stocke un type de données différent pour votre site web.
Chaque table possède le même préfixe, qui est défini dans le fichier wp-config.php. Par défaut, le préfixe est wp_, mais vous pouvez le modifier comme bon vous semble lors du processus d’installation de WordPress.
Commençons par examiner les tables les plus importantes pour gérer le contenu.
wp_posts et wp_postmeta
La table wp_posts est probablement la table la plus importante d’un site WordPress. Elle stocke les informations relatives aux articles, aux pages ou à tout autre type de contenu personnalisé de votre site web. Chaque ligne de la table wp_posts représente un article individuel. La table wp_postmeta vous permet de stocker des informations supplémentaires sur chaque article. Les métadonnées des articles sont également souvent appelées champs personnalisés.
wp_comments et wp_commentmeta
La table wp_comments stocke les informations relatives aux commentaires de vos articles et de vos pages. Lorsqu’une personne commente un article ou une page, ce commentaire est stocké dans cette table. Chaque ligne de la table wp_comments représente un commentaire individuel. La table wp_commentmeta peut stocker des informations supplémentaires sur chaque commentaire.
wp_user et wp_usermeta
La table wp_users stocke toutes les informations relatives aux utilisateurs de votre site web. Chaque ligne de la table wp_users représente un utilisateur individuel. Comme les autres tables de métadonnées, la table wp_usermeta peut stocker des informations supplémentaires sur chaque utilisateur.
Fonctions permettant d’interagir avec les articles, les commentaires et les utilisateurs
Pour toutes les tables de la base de données WordPress, il existe des fonctions que vous pouvez utiliser pour interagir avec ces tables.
Ces fonctions font partie de l’API de base de données WordPress.
Toutes ces fonctions sont accessibles à l’aide de la fonction de recherche de la documentation destinée aux développeurs WordPress, dans la section Référence du code.
En général, les fonctions que vous pouvez utiliser pour interagir avec la base de données WordPress suivent toutes un modèle similaire.
Il existe une fonction d’insertion, une fonction de mise à jour et une fonction de suppression.
Elles portent généralement le même nom, avec le préfixe wp_ suivi de l’action, puis du nom de la table.
Examinons par exemple ces fonctions pour les articles :
wp_insert_postest la fonction permettant de créer un nouvel articlewp_update_postest la fonction permettant de mettre à jour un article existantwp_delete_postest la fonction permettant de supprimer un article
Il existe ensuite généralement des fonctions permettant de récupérer soit tous les enregistrements d’une table, soit un seul enregistrement.
Elles portent généralement le même nom, avec le préfixe get_ suivi du nom singulier ou pluriel de la table.
Ainsi, par exemple, get_posts est la fonction permettant de récupérer une collection d’articles.
Et get_post est la fonction permettant de récupérer un article individuel.
Chacune de ces fonctions possède généralement un certain nombre de paramètres que vous pouvez utiliser pour filtrer les résultats renvoyés.
Il existe également des fonctions permettant d’interagir avec les tables de métadonnées, généralement pour insérer, mettre à jour ou supprimer des champs de métadonnées.
Elles portent généralement le même nom, avec l’action suivie du nom singulier de la table, puis de _meta.
Ainsi, par exemple, pour les articles, add_post_meta est la fonction permettant d’insérer un champ de métadonnées.
De même, update_post_meta est la fonction permettant de mettre à jour un champ de métadonnées et delete_post_meta est la fonction permettant de supprimer un champ de métadonnées.
wp_terms, wp_termmeta, wp_term_relationships et wp_term_taxonomy
Les tables wp_terms, wp_termmeta, wp_term_relationships et wp_term_taxonomy sont les tables qui gèrent les catégories et les étiquettes de votre site WordPress.
La table wp_terms stocke les informations relatives aux termes de votre site web. Chaque ligne de la table wp_terms représente un terme individuel. En interne, les catégories et les étiquettes sont toutes deux des termes.
Ce qui détermine s’il s’agit d’une catégorie ou d’une étiquette est la taxonomie à laquelle elles sont associées, et qui est stockée dans la table wp_term_taxonomy.
La table wp_term_relationships stocke les relations entre les termes et leurs objets parents, qu’il s’agisse d’un article, d’une page ou d’un type de contenu personnalisé.
Enfin, la table wp_termmeta peut stocker des informations supplémentaires sur chaque terme.
Fonctions permettant d’interagir avec les termes et les taxonomies
À l’instar des fonctions permettant d’interagir avec les articles, les commentaires et les utilisateurs, il existe également des fonctions permettant d’interagir avec les termes et les taxonomies. Vous pouvez les trouver en recherchant « term » ou « taxonomy » dans la Référence du code WordPress.
wp_options
La table wp_options stocke les informations relatives aux paramètres de votre site web. Chaque ligne de la table wp_options représente un paramètre spécifique. Par exemple, l’option siteurl stocke l’URL de votre site web, tandis que l’option blogdescription stocke le slogan de votre site web. La table wp_options stocke également les informations relatives à votre thème actif et à vos extensions actives.
Les données sont stockées dans la table wp_options au format clé-valeur. La clé est le nom de l’option et la valeur est la valeur de l’option.
Il est également possible de stocker des données sérialisées dans la table wp_options. Les données sérialisées sont une chaîne contenant plusieurs valeurs. Elles sont souvent utilisées pour stocker des tableaux et des objets de données. La liste des extensions actives, stockée sous forme de tableau sérialisé, en est un bon exemple.
Fonctions permettant d’interagir avec les options
L’API des options est généralement utilisée avec l’API des réglages pour créer des pages de réglages dans le tableau de bord WordPress, que ce soit via le cœur, des extensions ou des thèmes. L’API des options fournit des fonctions permettant d’interagir avec la table wp_options, comme add_option, update_option et delete_option.
wp_links
La table wp_links stocke les informations relatives aux liens de votre site web. Les liens étaient une fonctionnalité qui a été supprimée de WordPress dans la version 3.5.
Cependant, comme il est toujours possible de réactiver cette fonctionnalité à l’aide de l’extension Links Manager, la table a été conservée pour assurer la rétrocompatibilité.
Conclusion
Être capable d’identifier correctement les tables d’une base de données WordPress et d’interagir avec elles est une compétence extrêmement utile. Elle vous aidera à mieux comprendre le fonctionnement de WordPress lorsque vous développez avec WordPress.