Dans les parties précédentes de cette série, nous avons examiné les différentes tables de la base de données WordPress et avons examiné les données qu'elles stockent, leur interaction et les fonctions que vous utilisez pour interagir avec elles..
Dans cette dernière partie, je parlerai de Multisite. La base de données pour une installation WordPress Multisite contiendra des tables supplémentaires: un ensemble de tables pour chaque site exécuté sur le réseau et des tables supplémentaires pour le réseau lui-même, ainsi que les tables pour le site principal..
Cela signifie qu'il y a trois éléments pour comprendre le fonctionnement de la base de données dans Multisite:
Je vais commencer par regarder comment WordPress stocke les données pour le site principal.
Pour le site principal d'un réseau, WordPress utilise les mêmes 11 tables de base de données que pour une installation sur un seul site:
wp_posts
wp_postmeta
wp_comments
wp_commentmeta
wp_users
wp_usermeta
wp_links
wp_term_relationships
wp_term_taxonomy
wp_terms
wp_options
Ceux-ci contiendront des données relatives au site principal. Deux d’entre eux contiendront également des données relatives au reste du réseau. Ceux-ci sont:
wp_users
wp_usermeta
Les neuf autres tables fonctionnent de la même manière que pour un seul site: elles stockent des données sur le contenu du site principal. Cependant, ces deux dernières tables stockeront également des données utilisateur pertinentes pour l'ensemble du réseau, ainsi que des données utilisateur utilisées uniquement par le site principal. Je vais examiner cela dans un instant.
En plus de stocker les données utilisateur pour l'ensemble du réseau dans deux des tables principales, WordPress crée également des tables supplémentaires dans une installation multisite qui contiennent des données relatives au réseau et à ses sites..
Ceux-ci sont:
wp_blogs
wp_blog_versions
wp_registration_log
wp_signups
wp_site
wp_sitemeta
wp_sitecategories
(optionnel)WordPress utilise ces sept (ou six) tables, ainsi que les deux tables utilisateur, pour stocker toutes les données relatives au réseau multisite. Voici ce que chacun d'entre eux stocke:
Table | Les données | Remarques |
---|---|---|
wp_blogs | Ce champ stocke les détails de chaque site du réseau, il n’a donc qu’un seul enregistrement pour chaque site.. | Les champs comprennent blog_id , domaine , inscrit (les données sur lesquelles le site a été créé) et dernière mise à jour (encore une date). |
wp_blog_versions | La version actuelle de la base de données pour chaque site, mise à jour lors de la mise à jour du réseau. | Trois champs: blog_id , db_version et dernière mise à jour |
wp_registration_log | L'utilisateur admin créé lors de l'inscription de chaque site | Pour chaque site (identifié par blog_id ), la table stocke les identifiant d'utilisateur pour l'administrateur, leur adresse email et la date d'inscription. |
wp_signups | Stocke les données sur les sites qui ont été enregistrés mais non activés | Les champs comprennent un unique signup_id pour chaque enregistrement, le domaine auquel vous vous êtes inscrit, le titre, le nom d'utilisateur et l'adresse e-mail. Une fois qu'un site est activé, cet enregistrement est supprimé et un enregistrement est créé dans wp_blogs . |
wp_site | Stocke l'URL du site principal | Cette table a un seul enregistrement avec trois champs: l’identifiant du site principal (qui sera 1 ), son domaine et le chemin (normalement / ) |
wp_sitemeta | Stocke les métadonnées pour le réseau | Ce tableau est l'équivalent de wp_options pour l'ensemble du réseau. Il contient toutes les métadonnées relatives aux paramètres réseau, ainsi que de plus petites quantités de métadonnées pour des sites individuels. Il a quatre champs: un unique meta_id , ID du site (qui relie à wp_blogs ), meta_key et meta_value . |
wp_sitecategories | Table facultative créée uniquement si les conditions générales sont activées pour un site. | L'activation des termes globaux vous permet d'utiliser des termes sur plusieurs sites du réseau. La table (si elle est créée) aura quatre champs: cat_ID , nom_cat , nom_catégorie et dernière mise à jour . Notez que cette table stocke les termes, pas seulement les catégories, malgré les noms de champs. |
wp_users | Les données sur tous les utilisateurs sont stockées ici plutôt que pour chaque site, car des utilisateurs individuels peuvent avoir accès à plusieurs sites sur le réseau.. | Dans une installation multiste, WordPress crée deux champs supplémentaires dans le wp_users table: spam et supprimé, les deux valeurs étant des valeurs booléennes par défaut NON . |
wp_usermeta | le wp_usermeta tables stocke toutes les métadonnées pour tous les utilisateurs du site | Le tableau est utilisé de la même manière que pour une installation sur un seul site. |
La plupart de ces tableaux sont liés à la wp_blogs
tableau via le blog_ID
champ, car toutes les données nécessaires aux sites du réseau devront être liées à l’enregistrement de site principal. Les excepte sont:
wp_sitecategories
, des liens vers des publications et d'autres contenuswp_signups
, comme ces sites ne sont pas encore enregistréswp_usermeta
, qui a un lien indirect avec wp_blogs
via wp_users
Pour plus de détails sur chacune de ces tables et leurs champs, voir la page Codex sur la base de données.
La manière dont WordPress stocke les données de chacun des sites de votre réseau est assez simple: elle crée plusieurs copies de chaque table de base de données, une pour chaque site. Cependant, il ne crée pas de copies supplémentaires de wp_users
et wp_usermeta
comme ceux-ci sont tous stockés dans la table principale.
Pour différencier les tables de chaque site, WordPress ajoute l'ID du site au nom de la table, par exemple pour le site 2, wp_posts
devient wp_2_posts
.
Chaque site aura les tables suivantes:
wp_xx_posts
wp_xx_postmeta
wp_xx_comments
wp_xx_commentmeta
wp_xx_links
wp_xx_term_relationships
wp_xx_term_taxonomy
wp_xx_terms
wp_xx_options
le xx
ci-dessus sera remplacé par l'ID de site numérique. Toutes ces tables stockent les données de la même manière pour chaque site comme si le site était une installation sur un seul site.
Si vous manipulez, récupérez ou déplacez des données à partir d'une installation WordPress Multisite, il est important de comprendre la manière dont Multisite stocke les données différemment d'une installation Multisite..
Comme je l'ai montré, il y a trois éléments principaux: des tableaux utilisés pour le site principal; tables utilisées pour stocker la base de données sur le réseau dans son ensemble; et des tables créées pour chaque nouveau site. La structure de ceux-ci est similaire à une installation sur un seul site, à condition que vous vous souveniez que les deux tables stockant des données sur les utilisateurs ne sont pas dupliquées pour chaque site..