Comprendre et utiliser les données dans WordPress

Un site Web WordPress est composé de trois éléments principaux:

  1. L'installation de WordPress elle-même
  2. Le contenu de la wp-content répertoire qui inclut les thèmes, les plugins et les téléchargements
  3. La base de données, où tout le contenu est stocké.

La plupart des utilisateurs de WordPress n'entrent jamais en contact direct avec la base de données et ne se rendent peut-être même pas compte que le travail est constamment fait pour remplir leur site. Lorsque WordPress affiche n'importe quel type de page, que ce soit la page d'accueil, une publication ou une page unique ou une archive, il accède à la base de données pour afficher le contenu que les éditeurs et les administrateurs ont ajouté au site..

Dans cette série de didacticiels, je vais examiner en détail différents aspects de la base de données WordPress. La série comportera neuf parties couvrant les domaines suivants:

  1. introduction
  2. Relations entre les données
  3. Types de contenu
  4. Données d'utilisateur
  5. Métadonnées
  6. Taxonomies, catégories, tags et termes
  7. Taxonomies vs métadonnées post
  8. Le tableau des options
  9. Données multisites WordPress

Dans cette introduction, je vais donner un aperçu des tables de base de données et de leur lien avec les types de contenu avec lesquels vous êtes habitué à travailler dans WordPress, et identifier ce qui est stocké où.

Types de contenu dans WordPress

Comme les tables de base de données sont utilisées pour stocker du contenu, vous devez d'abord comprendre le contenu avant de pouvoir les comprendre. Il existe un certain nombre de types de contenu dans WordPress:

  • des postes
  • des pages
  • types de messages personnalisés
  • pièces jointes
  • liens
  • éléments de menu de navigation (qui sont stockés sous forme d'articles individuels)

Ces types de contenu sont ensuite associés à des données:

  • catégories
  • Mots clés
  • taxonomies et termes personnalisés
  • publier des métadonnées

En plus de ceux-ci, il existe d'autres types de contenu qui sont stockés différemment:

  • widgets
  • options
  • utilisateurs
  • sites (pour une installation multisite)
  • contenu codé en dur (ajouté à votre thème ou à vos plugins)
  • contenu provenant d'autres sources (contenu de tiers auquel on accède via des flux, du streaming ou d'autres techniques)

Tous ces types de contenu sont stockés quelque part dans la base de données (ou occasionnellement dans des thèmes ou des plugins, comme je le montrerai). Ils peuvent avoir leur propre entrée ou faire partie d'une autre entrée (par exemple, un contenu en streaming codé dans un message). Ils peuvent également être liés aux données d’autres tables. Par exemple, les données sur les publications seront liées aux données sur les utilisateurs afin que WordPress sache qui est l'auteur des publications..

La structure de la base de données WordPress

WordPress utilise une gamme de tables de base de données avec des relations entre elles pour minimiser la quantité de données à stocker - cela crée des relations un à plusieurs. Cela signifie qu’un utilisateur peut avoir plusieurs publications qu’il a créées en relation avec son enregistrement d’utilisateur. Cela économise de l'espace. Si WordPress stockait toutes les données utilisateur de chaque utilisateur contre chaque message publié, cela signifierait beaucoup de données répétées et beaucoup d'espace..

Le diagramme ci-dessous est tiré du codex WordPress et montre les tables de la base de données et leur lien:

La plupart des tables sont liées à une ou plusieurs autres tables via un champ. Ce champ sera un identifiant unique pour chaque enregistrement tel que post_id. Ceci est montré plus en détail dans ce tableau:

Table Données stockées Lié à
wp_posts Articles, pages, pièces jointes, révisions et éléments de menu de navigation wp_postmeta (via post_id)
wp_term_relationships(via post_id)
wp_postmeta Métadonnées pour chaque poste wp_posts (via post_id)
wp_comments commentaires wp_posts (via post_id)
wp_commentmeta Métadonnées pour chaque commentaire wp_comments (via comment_id)
wp_term_relationships Relations entre les postes et les taxonomies wp_posts (via post_id)
wp_term_taxonomy (via term_taxonomy_id)
wp_term_taxonomy Taxonomies (y compris les catégories et les balises) wp_term_relationships (via term_taxonomy_id)
wp_terms Vos catégories et tags et les termes attribués à des taxonomies personnalisées wp_term_taxonomy (via term_id)
wp_links Les liens dans votre blogroll (si vous en avez toujours un) wp_term_relationships (via link_id)
wp_users Utilisateurs wp_posts (via post_author)
wp_user_meta Métadonnées pour chaque utilisateur wp_users (via identifiant d'utilisateur)
wp_options Paramètres et options du site (définis via les écrans de configuration, les plugins et les thèmes) n / a

Quelques choses à noter:

  • Les tables de base de données ont le wp_ préfixe par défaut. Vous pouvez changer cela quand vous configurez votre site mais cela n'a pas beaucoup de valeur.
  • La table principale est la wp_posts table, où la plupart de vos données seront stockées. Cela tient (presque) tout le reste ensemble.
  • Une seule table n’est attachée à aucune autre - la wp_options table. Cette table stocke des données sur le site et l'installation de WordPress, qui ne sont pas liées aux données sur les publications ou les utilisateurs..
  • Deux tables sont utilisées pour stocker des données sur les taxonomies - elles seront expliquées plus en détail plus tard dans cette série..
  • le wp_users et wp_comments les tables ne sont pas liées - bien qu'il soit possible de spécifier que les utilisateurs doivent être enregistrés pour pouvoir commenter, WordPress n'enregistre pas les données relatives aux commentaires pour chaque utilisateur qui les a postées. 
  • Une installation multisite aura quelques tables supplémentaires. Je n'ai pas inclus ceux-ci ici car cela sort du cadre de ce tutoriel..

Liaison de contenu à des tables de base de données

Après avoir examiné les types de contenu dans WordPress et les tables de base de données utilisées pour les stocker, il peut être utile de faire correspondre les deux. Le tableau ci-dessous montre la table de base de données utilisée pour stocker chaque type de contenu..

Type de contenu Les tables)
des postes wp_posts
des pages wp_posts
types de messages personnalisés wp_posts
pièces jointes wp_posts
liens wp_links
éléments de menu de navigation wp_posts
catégories wp_terms
Mots clés wp_terms
taxonomies personnalisées wp_term_taxonomy
termes de taxonomie wp_terms
publier des métadonnées wp_post_meta
widgets wp_options
options wp_options
utilisateurs wp_users
contenu codé en dur wp_posts (si ajouté aux articles)
wp_options (si ajouté aux widgets)
Fichiers de thèmes et de plugins (si codés en dur)
contenu de tiers wp_posts (si ajouté aux articles)
wp_options (si ajouté via des widgets ou des plugins)
Fichiers de thèmes et de plugins (si codés en dur)

Vous avez peut-être remarqué que toutes les tables de la base de données ne sont pas incluses dans cette table. En effet, certaines d'entre elles sont utilisées pour stocker des métadonnées et d'autres pour stocker des relations qui seront abordées plus en détail ultérieurement dans cette série..

Résumé

J'espère que vous avez maintenant une meilleure compréhension de comment et où WordPress stocke différents types de données à l'aide de la structure de la base de données. Cette série examinera tous les aspects de cette question plus en détail. 

Dans la partie suivante, je vais examiner les relations entre les données et examiner plus en détail la façon dont des tables spécifiques sont liées et comment certaines sont utilisées uniquement pour stocker des données sur les relations..