Entendiendo y trabajando con datos en WordPress

Un sitio web de WordPress consta de tres elementos principales:

  1. La propia instalación de WordPress.
  2. Los contenidos de la wp-contenido Directorio que incluye los temas, complementos y subidas.
  3. La base de datos, donde se almacena todo el contenido..

La mayoría de los usuarios de WordPress nunca entran en contacto directo con la base de datos y es posible que ni siquiera sepan que está trabajando constantemente para poblar su sitio. Cuando WordPress sirve cualquier tipo de página, ya sea la página de inicio, una sola publicación o página o un archivo, está accediendo a la base de datos para mostrar el contenido que los editores y administradores han agregado al sitio..

En esta serie de tutoriales, analizaré en detalle diferentes aspectos de la base de datos de WordPress. La serie tendrá nueve partes, cubriendo lo siguiente:

  1. Introducción
  2. Relaciones entre datos
  3. Tipos de contenido
  4. Datos del usuario
  5. Metadatos
  6. Taxonomías, categorías, tags y términos.
  7. Taxonomías vs post metadatos
  8. La tabla de opciones
  9. WordPress datos multisitio

En esta introducción, daré una descripción general de las tablas de la base de datos y cómo se relacionan con los tipos de contenido con los que puede estar acostumbrado a trabajar en WordPress, e identificaré qué almacena dónde.

Tipos de contenido en WordPress

Como las tablas de la base de datos se utilizan para almacenar contenido, antes de que pueda comprenderlas, debe comprender el contenido. Hay varios tipos de contenido en WordPress:

  • puestos
  • páginas
  • tipos de correos personalizados
  • archivos adjuntos
  • campo de golf
  • Elementos del menú de navegación (que se almacenan como publicaciones individuales)

Estos tipos de contenido tienen datos adjuntos:

  • categorías
  • etiquetas
  • taxonomías y términos personalizados
  • publicar metadatos

Además de estos, hay otros tipos de contenido que se almacenan de manera diferente:

  • widgets
  • opciones
  • usuarios
  • sitios (para una instalación multisitio)
  • Contenido codificado (agregado a su tema o complementos)
  • contenido obtenido de otra parte (contenido de terceros a los que se accede mediante feeds, transmisión u otras técnicas)

Todos estos tipos de contenido se almacenan en algún lugar de la base de datos (u ocasionalmente en temas o archivos de complementos, como mostraré). Pueden tener una entrada propia o pueden ser parte de otra entrada (por ejemplo, contenido transmitido codificado en una publicación). También pueden estar vinculados a datos en otras tablas. Por ejemplo, los datos sobre las publicaciones se vincularán a los datos sobre los usuarios para que WordPress sepa quién fue el autor de qué publicaciones..

La estructura de la base de datos de WordPress

WordPress utiliza una gama de tablas de base de datos con relaciones entre ellas para minimizar la cantidad de datos que deben almacenarse; esto crea relaciones de uno a varios. Esto significa que, digamos, un usuario puede tener muchas publicaciones que haya creado en relación con su registro de usuario. Se ahorra espacio: si WordPress almacenara todos los datos de usuario de cada usuario en cada publicación de su autoría, eso significaría una gran cantidad de datos repetidos y mucho espacio..

El diagrama a continuación está tomado del códice de WordPress y muestra las tablas de la base de datos y cómo están vinculadas:

La mayoría de las tablas están vinculadas a una o más tablas a través de un campo. Este campo será un identificador único para cada registro, como ID del mensaje. Esto se muestra con más detalle en esta tabla:

Mesa Datos almacenados Vinculado a
wp_posts Publicaciones, páginas, archivos adjuntos, revisiones y elementos del menú de navegación. wp_postmeta (vía ID del mensaje)
wp_term_relationships(vía ID del mensaje)
wp_postmeta Metadatos para cada publicación. wp_posts (vía ID del mensaje)
wp_comments Comentarios wp_posts (vía ID del mensaje)
wp_commentmeta Metadatos para cada comentario. wp_comments (vía comentario_id)
wp_term_relationships Relaciones entre puestos y taxonomías. wp_posts (vía ID del mensaje)
wp_term_taxonomy (vía term_taxonomy_id)
wp_term_taxonomy Taxonomías (incluyendo categorías y etiquetas) wp_term_relationships (vía term_taxonomy_id)
wp_terms Sus categorías y etiquetas y los términos asignados a taxonomías personalizadas wp_term_taxonomy (vía term_id)
wp_links Los enlaces en tu blogroll (si todavía tienes uno) wp_term_relationships (vía link_id)
wp_users Usuarios wp_posts (vía post_autor)
wp_user_meta Metadatos para cada usuario. wp_users (vía user_id)
wp_options Configuraciones y opciones del sitio (configuradas a través de las pantallas de Configuración y mediante complementos y temas) n / A

Algunas cosas son dignas de mención:

  • Tablas de bases de datos tienen la wp_ prefijo por defecto. Puede cambiar esto cuando configure su sitio, pero no tiene mucho valor..
  • La tabla central es la wp_posts Tabla, donde se almacenará la mayor parte de sus datos. Esto mantiene (casi) todo lo demás unido..
  • Sólo una tabla no está unida a ninguna otra, la wp_options mesa. Esta tabla almacena datos sobre el sitio y la instalación de WordPress, que no está relacionada con datos sobre publicaciones o usuarios.
  • Se utilizan dos tablas para almacenar datos sobre taxonomías, que se explicarán con más detalle más adelante en esta serie..
  • los wp_users y wp_comments las tablas no están vinculadas, aunque es posible especificar que los usuarios deben registrarse para comentar, WordPress no almacena datos sobre los comentarios en contra de cada usuario que los ha publicado.. 
  • Una instalación multisitio tendrá algunas tablas extra. No los he incluido aquí, ya que está fuera del alcance de este tutorial..

Enlace de contenido a tablas de base de datos

Habiendo examinado los tipos de contenido en WordPress y las tablas de base de datos utilizadas para almacenarlos, puede ser útil hacer coincidir los dos. La siguiente tabla muestra qué tabla de base de datos se utiliza para almacenar cada tipo de contenido.

Tipo de contenido Mesas)
puestos wp_posts
páginas wp_posts
tipos de correos personalizados wp_posts
archivos adjuntos wp_posts
campo de golf wp_links
elementos del menú de navegación wp_posts
categorías wp_terms
etiquetas wp_terms
taxonomías personalizadas wp_term_taxonomy
términos de taxonomía wp_terms
publicar metadatos wp_post_meta
widgets wp_options
opciones wp_options
usuarios wp_users
contenido codificado wp_posts (si se agrega a las publicaciones)
wp_options (si se agrega a los widgets)
Archivos de temas y complementos (si están codificados)
contenido de terceros wp_posts (si se agrega a las publicaciones)
wp_options (si se agrega a través de widgets o complementos)
Archivos de temas y complementos (si están codificados)

Es posible que haya notado que no todas las tablas de la base de datos están incluidas en esa tabla. Esto se debe a que algunos de ellos se utilizan para almacenar metadatos y otros para almacenar relaciones, las cuales se tratarán con más detalle más adelante en esta serie..

Resumen

Esperemos que ahora tenga una mejor comprensión de cómo y dónde WordPress almacena diferentes tipos de datos utilizando la estructura de la base de datos. Esta serie examinará todos los aspectos de esto con más detalle.. 

En la siguiente parte, examinaré las relaciones entre los datos y veré con más detalle cómo se vinculan las tablas específicas y cómo se usan algunas para almacenar datos sobre las relaciones..