La base de données WordPress

La base de données WordPress

Afin d’interagir avec ma base de donnée, je dois connaître  la structure de cette dernière. La base de donnée WORDPRESS a, comme on va le voir, certaines particularités.

Voici la structure des tables de la base de donnée : par défaut celle-ci compte 11 tables.

db

wp_posts

C’est la table centrale de la base de données WORDPRESS. On y trouve:

  • le texte de chacune des pages (post_type = page)
  • le texte de chacun des articles (post_type = post)
  • les informations sur les médias (images, fichiers PDF, etc.) (post_type = attachment)
  • les options de chacun des menus (post_type = nav_menu_item)
  • l’historique des modifications sur les pages et les articles (post_type = revision)
  • etc.

post

WORDPRESS conserve un historique de chaque modification effectuée sur le site. C’est pourquoi on peut retrouver  plusieurs enregistrements pour une même page. Le champ post_parent permet de gérer la hiérarchie de ces doublons. Ainsi, une ancienne version d’une page aura dans son champ post_parent l’identifiant de la page publiée.

La table wp_postmeta

Cette table permet d’ajouter de l’information sur différents enregistrements de la table wp_posts. C’est en fait une extension de cette table. On y stocke des paires clé-valeur pour répondre à tous les besoins qui n’ont pas été prévus initialement dans la table wp_posts. Chaque paire est associée à l’identifiant d’un enregistrement de la table wp_posts. Typiquement on y trouvera les custom fields crées par les métabox.

La table wp_postmeta sera souvent utilisée par les thèmes ou extensions pour stocker des informations en lien avec de nouvelles fonctionnalités qu’ils mettent en place.

postmeta

wp_usermeta

Cette table est un complément à la table wp_users avec des enregistrements sous la forme de paires clé-valeur. Toutes les configurations des utilisateurs y sont stockées. Pour chaque utilisateur, on y retrouvera plusieurs enregistrements et d’autres configurations pourront être ajoutées par le thème et les extensions.

usermeta

wp_options

Cette table, sous la forme de paires clé-valeur, contient une foule de configurations générales, dont les deux plus importantes :

  • L’adresse Web de WORDPRESS (option_name = siteurl). Il s’agit de l’endroit où les fichiers de WORDPRESS sont installés. La valeur entrée ici doit débuter par http:// .ou https://
  • L’adresse Web du site (option_name = home). Il s’agit de l’adresse que les internautes utiliseront pour afficher le site. Dans la majorité des cas, cette configuration contiendra les mêmes informations que le siteurl.

Dès l’installation d’un site WORDPRESS, cette table contient plus de 150 enregistrements. Si vous faites des recherches dans phpMyAdmin, les enregistrements de wp_options seront affichés sur plusieurs pages. N’oubliez pas de vérifier l’ensemble des pages de résultat pour y trouver ce que vous cherchez.

wpoptions

Nettoyer sa base de donnée

Il existe une foule de plugin permettant de nettoyer régulièrement sa base de donnée. C’est quelque chose de conseillé pour l’alléger de toute donnée devenue inutile. Ces plugins lancent des requêtes qui vont nettoyer chacune des tables de la base. Parmi ces plugins, les plus souvent cités sont WP-SweepWP-Optimize, mais il y en a beaucoup d’autres

Pour nettoyer sa base sans forcément passer par un plugin, on peut citer les requêtes suivantes:

Pour nettoyer les révisions des articles :

DELETE FROM 'wp_posts' WHERE ‘post_type’ = 'revision'

Pour nettoyer les sauvegardes automatiques:

DELETE FROM 'wp_posts' WHERE 'post_status' = "auto-draft"

Pour nettoyer les transients

DELETE FROM 'wp_options' WHERE 'option_name' LIKE '%transcient%'

Pour nettoyer les spams

DELETE FROM wp_comments WHERE comment_approved = 'spam';

Pour optimiser ses tables

OPTIMIZE TABLE le_nom_de_votre_table