Ouvrez la base d’une installation WordPress fraîchement créée : une douzaine de structures y apparaissent déjà, chacune dédiée à un rôle précis, bien avant qu’un seul article ne soit rédigé. C’est ce squelette qui rend possible tout le reste.
Le schéma minimal de WordPress
Une dizaine de tables composent le cœur : wp_posts pour les contenus, wp_postmeta pour leurs métadonnées, wp_users et wp_usermeta pour les comptes, wp_terms, wp_term_taxonomy et wp_term_relationships pour les catégories et étiquettes, wp_comments et wp_commentmeta, ainsi que wp_options pour les réglages du site. Chacune est préfixée selon la valeur de $table_prefix définie dans wp-config.php, ce qui permet à plusieurs installations de cohabiter dans une même base.
Exemple : lister les tables d’une installation
wp db tables
SHOW TABLES LIKE 'wp_%';
Bon à savoir
- Une extension ambitieuse crée souvent ses propres tables plutôt que de tout stocker dans
wp_postmeta, notamment quand le volume de données ou la complexité des requêtes le justifie. - Le préfixe par défaut
wp_peut être changé dès l’installation pour des raisons de discrétion, mais ce choix seul n’apporte qu’une protection très limitée contre une intrusion réelle. - En multisite, chaque site secondaire dispose de ses propres tables de contenu (
wp_2_posts, par exemple) tout en partageantwp_usersavec le réseau entier. - La structure exacte de chaque table, colonne par colonne, est documentée dans le manuel du développeur sur developer.wordpress.org, une référence utile avant d’écrire une requête directe avec
$wpdb.