WordPress no sólo son archivos, también hay una base de datos en donde se guarda la información de tu sitio, entender mejor la estructura de base de datos de WordPress te dará una mejor visión del código que la usa y las modificaciones que hagas.
Generalidades
Una base de datos relacional esta conformado por tablas; la estructura actual de la base de datos de WordPress esta conformada por defecto por 11 tablas, tal como se muestra en la siguiente imagen.
Cada tabla tiene una estructura similar a una hoja de cálculo, con una cabecera que incluye los nombres de los campos y organizado en filas y columnas, además las tablas se relacionan unas con otras, tal como se muestra en la siguiente imagen.
Tabla de Opciones Generales
Las opciones generales se almacenan en la tabla wp_options, esta tabla esta aislada, es decir no tiene relaciones directamente con otras tablas.
Además su estructura es bastante simple, tiene campos de option_name y option_value para almacenar las configuraciones generales tanto de WordPress como de Plugins.
Tablas con Metadatos
La estructura de base de datos de WordPress considera que cada tabla principal tenga su tabla de metadatos, la cual amplia la cantidad de campos que puede tener un registro particular.
El nombre de la tabla de metadatos incluye el nombre de la tabla principal, por ejemplo para la tabla principal wp_users su tabla de metadatos se llama wp_usermeta.
A continuación se detallan las tablas de este grupo:
- wp_comments: Esta es la tabla en donde se almacenan los comentarios del sitio, además incluy campos de monitoreo, como Ip del usuario, fecha, etc.
- wp_commentmeta: Almacena metadatos de los comentarios, por ejemplo datos relacionados a la aprobación del comentario.
- wp_users: En esta tabla se almacenan los usuarios, tiene campos como correo, clave, usuario, etc.
- wp_usermeta: Los metadatos del usuario incluyen: información personal adicional, personalizaciones del backend, configuraciones de plugins a nivel de usuario, etc.
- wp_posts: En esta tabla se almacena todo el contenido de nuestro sitio: entradas, páginas, menús, etc., tien campos como: título, contenido, tipo, etc.
- wp_postmeta: Aqui se almacena información adicional para cada registro de contenido, por ejemplo si el contenido esta siendo editado, los campos personalizados, etc.
- wp_terms: En esta tabla se almacena el nombre de las taxonomías del contenido, por ejemplo: nombres de categorías, nombres de etiquetas, etc.
- wp_termmeta: En esta tabla se almacén datos adicionales para cada nombre de taxonomía.
Tablas de Contenido con Taxonomías
El contenido del sitio web se almacena en la tabla wp_content, sin embargo este contenido esta organizado a través de taxonomías, anteriormente habíamos indicado que la tabla wp_terms almacena estos nombres de taxonomías.
Sin embargo para que el contenido se relacione con su nombre de taxonomía, existen tablas intermedias, tal como se ve en la siguiente imagen.
Las tablas intermedias que relacionan wp_content con wp_terms son:
- wp_term_taxonomy: En esta tabla se almacena el tipo de taxonomía, es decir, si bien tenemos el nombre de la taxonomía en la tabla wp_terms, en esta tabla la agrupamos por tipo, algunos tipos son: category, post_tag, etc
- wp_term_relationship: A través de esta tabla se relaciona un registro de contenido con su tipo de taxonomía, por ejemplo una entrada específica podría tener una o más categorías y una o más etiquetas
La siguiente imagen nos ayudará a entender mejor estas tablas que relacionan el contenido con el nombre de taxonomía a la que corresponden.
Vemos que la entrada “Hola Mundo”, tiene una categoría (category) y una etiqueta (tag), la categoría a la que esta relacionada se llama “Blog” y la etiqueta a la que esta relacionada es la etiqueta llamada “Saludo”.
Conclusión
Tal como has visto, WordPress por defecto tiene una estructura de base de datos con pocas tablas, todas las configuraciones globales se almacenan en una tabla, además las principales tablas tienen tablas de metadatos, y para organizar el contenido tenemos tablas de taxonomías.
¿Aún con dudas?, en el siguiente video se detallan los puntos anteriores.
Saludos, donde dices “tabla wp_content” imagino que te estas refiriendo a “tabla wp_post”, salvo ese leve desliz tienes buen contenido/estructurado/explicado/diseñado.
Hola, si, efectivamente me refiero a la tabla wp_posts. Gracias por la observación. Saludos.
Extraordinario Jhon… Sigo tus consejos hace tiempo y son excelentes
Gracias!. Saludos 🙂