En las partes anteriores de esta serie, hemos revisado las diferentes tablas de la base de datos de WordPress y hemos examinado qué datos almacenan, cómo interactúan entre sí y qué funciones utiliza para interactuar con ellos..
En esta parte final, pasaré a ver Multisite. La base de datos para una instalación de WordPress Multisite contendrá tablas adicionales: un conjunto de tablas para cada sitio que se ejecuta en la red y algunas tablas adicionales para la propia red, así como las tablas para el sitio central..
Esto significa que hay tres elementos para comprender cómo funciona la base de datos en Multisite:
Comenzaré observando cómo WordPress almacena los datos para el sitio central.
Para el sitio central en una red, WordPress usa las mismas 11 tablas de base de datos que en una instalación de un solo sitio:
wp_posts
wp_postmeta
wp_comments
wp_commentmeta
wp_users
wp_usermeta
wp_links
wp_term_relationships
wp_term_taxonomy
wp_terms
wp_options
Estos contendrán datos relacionados con el sitio principal. Dos de ellos también contendrán datos relacionados con el resto de la red. Estos son:
wp_users
wp_usermeta
Las otras nueve tablas funcionan de la misma manera que lo hacen para un solo sitio: almacenan datos sobre el contenido del sitio principal. Sin embargo, esas dos últimas tablas también almacenarán los datos del usuario que son relevantes para toda la red, así como los datos del usuario que solo utiliza el sitio central. Voy a examinar esto en un momento.
Además de almacenar datos de usuario para toda la red en dos de las tablas principales, WordPress también crea tablas adicionales en una instalación multisitio que contiene datos relacionados con la red y sus sitios..
Estos son:
wp_blogs
wp_blog_versions
wp_registration_log
wp_signups
wp_site
wp_sitemeta
wp_sitecategories
(Opcional)WordPress utiliza estas siete (o seis) tablas más las dos tablas de usuario para almacenar todos los datos sobre la red de sitios múltiples. Esto es lo que cada uno de ellos almacena:
Mesa | Datos | Notas |
---|---|---|
wp_blogs | Este campo almacena los detalles de cada sitio en la red, por lo que solo tiene un registro para cada sitio. | Los campos incluyen blog_id , dominio , registrado (los datos en los que se creó el sitio) y última actualización (de nuevo, una fecha). |
wp_blog_versions | La versión actual de la base de datos para cada sitio, actualizada cuando actualiza la red. | Tres campos: blog_id , db_version y última actualización |
wp_registration_log | El usuario administrador creado cuando se registra cada sitio | Para cada sitio (identificado por blog_id ), la mesa almacena la user_id Para el administrador, su dirección de correo electrónico y la fecha en que se registraron.. |
wp_signups | Almacena datos en sitios que se han registrado pero no están activados | Los campos incluyen un único Signup_id Para cada registro, el dominio registrado, el título, el inicio de sesión del usuario y la dirección de correo electrónico. Una vez que se activa un sitio, este registro se elimina y se crea un registro en wp_blogs . |
wp_site | Almacena la URL del sitio principal | Esta tabla solo tiene un registro con tres campos: el id del sitio principal (que se mostrará) 1 ), su dominio y la ruta (normalmente / ) |
wp_sitemeta | Almacena metadatos para la red. | Esta tabla es el equivalente de wp_options Para toda la red. Contiene todos los metadatos relacionados con la configuración de red más pequeñas cantidades de metadatos para sitios individuales. Tiene cuatro campos: un único. meta_id , Identificación del sitio (que enlaza con wp_blogs ), meta_key y meta_valor . |
wp_sitecategories | Tabla opcional solo creada si los términos globales están habilitados para un sitio. | Habilitar términos globales le permite usar términos en múltiples sitios en la red. La tabla (si está creada), tendrá cuatro campos: cat_ID , nombre de gato , nombre_categoría y última actualización . Tenga en cuenta que esta tabla almacena términos, no solo categorías, a pesar de los nombres de campo. |
wp_users | Los datos de todos los usuarios se almacenan aquí en lugar de para cada sitio, ya que los usuarios individuales pueden tener acceso a múltiples sitios en la red. | En una instalación de varias pistas, WordPress crea dos campos adicionales en la wp_users tabla: correo no deseado y eliminado, ambos de los cuales son valores booleanos predeterminados para NO . |
wp_usermeta | los wp_usermeta tablas almacena todos los metadatos para todos los usuarios del sitio | La tabla se utiliza de la misma manera que para una instalación de un solo sitio.. |
La mayoría de estas tablas están relacionadas con wp_blogs
mesa a través de la blog_ID
campo, ya que todos los datos necesarios para los sitios en la red deberán estar vinculados al registro del sitio central. Las excepciones son:
wp_sitecategories
, ¿Qué enlaces a las publicaciones y otros contenidos?wp_signups
, ya que estos no son sitios registrados todavíawp_usermeta
, que tiene un enlace indirecto a wp_blogs
vía wp_users
Para obtener más detalles sobre cada una de estas tablas y sus campos, consulte la página del Codex en la base de datos.
La forma en que WordPress almacena los datos para cada uno de los sitios en su red es bastante sencilla: crea múltiples copias de cada una de las tablas de la base de datos, una para cada sitio. Sin embargo, no crea copias adicionales de wp_users
y wp_usermeta
ya que estos están todos almacenados en la tabla principal.
Para diferenciar las tablas de cada sitio, WordPress agrega el ID del sitio al nombre de la tabla, por ejemplo, para el sitio 2, wp_posts
se convierte en wp_2_posts
.
Cada sitio tendrá las siguientes tablas:
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
los xx
Lo anterior será reemplazado por el ID del sitio numérico. Todas estas tablas almacenan los datos de la misma manera para cada sitio que lo harían si el sitio fuera una instalación de un solo sitio..
Si está manipulando, recuperando o moviendo datos de una instalación de WordPress Multisite, es importante entender las formas en que Multisite almacena los datos de manera diferente a una instalación de Multisite.
Como he mostrado, hay tres elementos principales para esto: tablas usadas para el sitio central; tablas utilizadas para almacenar la base de datos sobre la red como un todo; y tablas creadas para cada nuevo sitio. La estructura de estos es similar a la instalación de un solo sitio, siempre que recuerde que las dos tablas que almacenan datos en los usuarios no están duplicadas para cada sitio..