Formation PUB020 : WordPress, 2023 La base de données WordPress

La base de données WordPress31.1 Structure de la BD initiale


Lors de l'installation initiale d'un site WordPress, votre site utilise déjà une structure de base de données intéressante.

Il n'est pas nécessaire de manipuler cette base de données pour développer un site WordPress.

Cependant, la connaissance de sa structure vous aidera à comprendre le fonctionnement de WordPress. De plus, comme vous êtes des développeurs, vous devrez connaître la base de données pour tirer parti de son fonctionnement dans les thèmes et les extensions que vous développerez.

Structure de la BD originale de WordPress

Évidemment, le nom de vos tables ne débutera pas par « wp_ » mais bien par le préfixe que vous aurez choisi lors de l'installation.

De nouvelles tables pourront être ajoutées à cette structure par le thème et les extensions utilisées. 

Attention : vous remarquerez sans doute que la modélisation de cette base de données comporte un manque de rigueur dans la nomenclature. Malheureusement, nous devons apprendre à vivre avec.

wp_posts

La table centrale de la base de données WordPress est certainement wp_posts. 

À l'origine, cette table était destinée à l'enregistrement des articles d'un blogue. Puisque, de nos jours, WordPres n'est plus seulement utilisé pour les blogues, cette table est devenue une sorte de « fourre-tout ».

On y stocke :

  • 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.

Voici un extrait des données de cette table :

enregistrement de la table wp_posts

Ce qu'il faut savoir sur cette table :

  • WordPress conserve un historique des modifications. C'est pourquoi vous retrouverez plusieurs enregistrements pour une même page. La version qui sera affichée sur le site aura la valeur "publish" dans le champ post_status.
  • Il y a un système de hiérarchie entre les différentes informations de cette table. Le champ post_parent permet de gérer cette hiérarchie. Ainsi, une ancienne version d'une page aura dans son champ post_parent l'identifiant de la page publiée. Cette hiérarchie permet également de monter des menus à plusieurs niveaux.
  • WordPress est muni d'un système de commentaires. Il est possible de laisser ou non la possibilité aux internautes de commenter une page ou un article donné grâce à son champ comment_status.
  • Le champ guid est important : il permet de monter l'URL des pages et articles. Son contenu ne devrait jamais être modifié sinon, les liens de sites externes vers les pages de notre site seront brisés.

wp_postmeta

La table wp_postmeta 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.

Par exemple, si un thème prévoit plusieurs modèles pour les pages et articles (ex : sur une colonne, sur deux colonnes, avec tel ou tel icône, etc.), on pourra stocker le modèle d'une page ou d'un article donné sous la forme suivante :

enregistrement de la table wp_postmeta

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

wp_users

Le contenu de cette table est plutôt évident... quoi qu'il pourrait contenir des fonctionnalités que vous ne soupçonniez pas.

Ce qu'il faut savoir sur cette table :

  • Vous pouvez modifier le mot de passe d'un usager en lui appliquant l'algorithme de cryptage MD5 soit à l'aide des outils graphiques de phpMyAdmin, soit à l'aide d'une requête SQL.

    Ne soyez pas inquiets : WordPress ne conservera pas ce hachage longtemps. Dès la prochaine authentification de cette personne, le mot de passe sera reconverti avec un algorithme plus sécuritaire.

    MySQL

    UPDATE wp_users SET user_pass=MD5('nouveaumotdepasse') WHERE user_login='...';

  • Les usagers peuvent avoir différents rôles. Les rôles sont stockés dans la table wp_usermeta.
    • Super-administrateur (pour WordPress multi-sites)
    • Administrateur
    • Editeur
    • Auteur
    • Contributeur
    • Abonné
  • Le champ user_email doit contenir une valeur unique dans toute la table. Il n'est donc pas possible d'avoir un administrateur et un abonné qui utilisent le même courriel.

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 :

  • quel thème de couleurs l'administrateur souhaite-t-il utiliser dans le tableau de bord ?
  • la barre noire indiquant que l'usager est authentifié doit-elle apparaître sur le site ?
  • quel rôle détient l'utilisateur ?
  • et plein d'autres configurations pouvant être ajoutées par le thème et les extensions.

wp_options

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

  • 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 par https:// .
  • 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 la configuration siteurl.
  • Dès l'installation d'un site WordPress, cette table contient plus de 150 enregistrements. 

Pour plus d'information

« Database Description ». Codex WordPress. http://codex.wordpress.org/Database_Description

▼Publicité

Veuillez noter que le contenu de cette fiche vous est partagé à titre gracieux, au meilleur de mes connaissances et sans aucune garantie.
Merci de partager !
Soumettre