Si administras un sitio web WordPress es posible que en algún momento hayas realizado alguna operación relacionada con las Base de datos, ya sea para hacer un backup, para forzar el cambio de una contraseña o simplemente para inspeccionar las tablas.
En este artículo vamos a ver de manera general la estructura de la base de datos en WordPress y sus principales relaciones entre tablas.
Tabla de contenidos
¿Qué es una base de datos?
Una base de datos podemos entenderla como un almacén en donde se guardan datos de manera organizada para su posterior uso.
Usualmente está controlada por un software que nos ayuda con la administración, en el caso de WordPress, es común utilizar MySQL como software para la administración de la base de datos.
Muchas veces pensamos que el contenido de WordPress se encuentra en archivos HTML, sin embargo la mayor parte del contenido de las entradas, páginas, comentarios, etc. están guardados en una base de datos.
En la siguiente imagen podemos ver que en el lado del servidor tenemos archivos PHP que crean dinámicamente el contenido, recuperándolo de la base de datos y muestran el resultado en archivos HTML al usuario.
¿Qué son las Tablas y Campos de una base de datos?
La base de datos está organizada en tablas, las que a su vez, tienen campos.
Podemos entender esto como una hoja de cálculo de excel, en donde las hojas individuales serían las tablas y las columnas los campos, tal como vemos en la siguiente imagen:
Existe un campo que es conocido como el identificador o ID. Este campo debe ser único para cada registro y nos sirve generalmente para relacionar tablas.
Tablas de la Base de Datos en WordPress
WordPress consta de 12 tablas, aunque en la práctica solo usaremos 11, la tabla faltante es la tabla wp_links y se usa por compatibilidad con versiones anteriores y porque algunos plugins antiguos aún la utilizan.
En la siguiente imagen vemos las tablas de la base de datos en WordPress y sus relaciones:
Como podemos ver el nombre de cada tabla empieza con el prefijo wp_: es el prefijo por defecto, pero se puede cambiar al momento de la instalación de WordPress.
Tabla de Opciones Generales
En la siguiente imagen vemos una tabla que esta completamente aislada del resto, es decir que no tiene ninguna relación.
Esta tabla es la tabla wp_options y en ella se almacenan opciones generales de WordPress y también almacena las opciones de configuración de algunos plugins.
La estructura de la tabla es bastante simple, tiene campos: option_key y option_value para almacenar los datos.
Algunos datos almacenados en esta tabla son, por ejemplo, el nombre del tema actual, el nombre del sitio, url del sitio, etc.
Tablas con metadatos
Existen tablas que tienen metadatos o datos adicionales asociados, lo podemos comprobar en la siguiente imagen adjunta.
Como podemos ver una tabla de metadatos se compone del nombre de la tabla base más el prefijo meta, por ejemplo wp_users y wp_usersmeta.
Todas estas tablas meta tienen una estructura similar a wp_options, pero en este caso, los campos llevan por nombre meta_key y meta_value. De esta manera se pueden agregar como registros campos adicionales.
A continuación tenemos las tablas con tablas de metadatos asociadas:
wp_comments
En esta tabla se almacenan los comentarios de WordPress. Algunos campos importantes incluyen el correo, url y nombre del autor del comentario, además, información de monitoreo como la IP, información del navegador y fechas.
wp_commentmeta
Esta tabla agrega datos extra a los comentarios. La estructura incluye campos de clave y valor, son usadas comúnmente por plugins adicionales como Akismet para marcar un comentario como spam.
wp_users
En esta tabla se almacena la información de los usuarios del sitio, tiene campos como el login, correo, la clave (la cual esta encriptada).
wp_usermeta
En esta tabla se almacena información adicional del usuario, como por ejemplo su nombre, apellido, rol y otras preferencias que tiene configuradas.
wp_posts
Aquí se guarda todo el contenido de nuestro sitio web. Cada registro almacena un tipo de post, por ejemplo: entradas, páginas, menús, adjuntos y otros tipos creados por plugins.
Tiene campos como por ejemplo: título, contenido, estado, tipo.
wp_postmeta
En este tabla se guarda información adicional para cada publicación o contenido registrado. Tiene la estructura de clave y valor, por lo que se pueden asociar muchos más campos a un determinado registro de contenido.
wp_terms
En esta tabla se guardan los nombres de las taxonomías que están usando los diferentes tipos de contenido, por ejemplo: nombre de categorías, nombres de etiquetas, etc.
wp_termmeta
En esta tabla se almacena información adicional para cada nombre de taxonomía de la tabla wp_terms.
Tablas de contenido con Taxonomías
Todo el contenido de los diferentes tipos de contenido (entradas, páginas, adjuntos, etc.) se almacenan en la tabla wp_content.
Sin embargo, este contenido está agrupado a través de taxonomías en WordPress (categorías, etiquetas, menús, etc.). En la siguiente imagen podemos ver las tablas que están relacionados con contenido y taxonomías.
Las tablas que relacionan el contenido con el nombre de taxonomía son:
wp_term_taxonomy
En esta tabla se almacena el tipo de taxonomía a la que esta asociada un registro de la tabla wp_terms, por ejemplo si en wp_terms tenemos noticias en wp_term_taxonomy, especificaremos que es un tipo category.
wp_term_relationship
Esta tabla sirve para relacionar la taxonomía o taxonomías a las que está relacionada un registro de contenido, por ejemplo: una entrada podría estar asociada a una o más categorías y tener una o más etiquetas.
En la siguiente imagen vemos un ejemplo con IDs ficticios de una relación entre el contenido de una entrada y sus diferentes taxonomías.
En la imagen vemos una entrada llamada “Hola Mundo”, a través de las relaciones observamos que tiene asignada una categoría (category) llamada blog y una etiqueta (tag) llamada saludo.
Vídeo explicativo
Conclusión
Tal como hemos podido revisar, WordPress almacena el contenido de tu sitio web en tablas.
La mayoría de ellas mantiene relaciones con metadatos y la tabla de contenido tiene una relación de taxonomías. Conocer esto nos ayuda a tener un mejor entendimiento de cómo se almacena la información de un sitio web en WordPress.
¿Te ha resultado útil este artículo?
Soporte técnico WordPress en Webempresa y ponente habitual en Meetups y WordCamps de América.