Las tablas de la base de datos de WordPress

Cuando instalamos WordPress se crean 12 tablas iniciales que son las que vamos a explicar en esta guía.

Nota: Ante de continuar debemos saber que no deberíamos utilizar el prefijo por defecto que nos ofrece WordPress que no es otro que “wp_“. Deberíamos cambiarlo por otro por motivos de seguridad. Para esta guía he utilizado el prefijo por defecto por motivos didácticos.

Tras realizar una instalación de WordPress sin nada más, nos econtraremos estas tablas en nuestro phpMyAdmin:

Esta es la estructura de tablas que nos vamos a encontrar en una nueva instalación de WordPress.

A continuación vamos a resumir un poco cada una de las tablas para más adelante pasar a detallarlas un poco más cada una de ellas.

Las 12 tablas de WordPress
wp_commentmeta Esta tabla contiene contenido adicional sobre los comentarios.
wp_comments Aquí están los datos de los comentarios.
wp_links Esta tabla está obsoleta desde la versión 3.5 de WordPress. Aquí se almacenan o almacenaban los enlaces.
wp_options Aquí se almacenan los datos de configuración de WordPress además de datos sobre configuración de plugins, temas, etc..
wp_postmeta Información relacionada con los posts. Esta tabla está relacionada con la tabla wp_posts.
wp_posts Se almacena todo el contenido de WordPress como entradas, páginas, ficheros, etc…
wp_termmeta Metadados relacionados con las categorías.
wp_terms Aquí se almacenan las categorías y etiquetas.
wp_terms_relationships En esta tabla se establece la relación entre los posts con las categorías, etiquetas, etc..
wp_term_taxonomy Establece las características de las taxonomías como las entradas, páginas, etc…
wp_usermeta Tabla con información adicional sobre los usuarios de la tabla wp_users.
wp_users En esta tabla es donde se almacenan todos los usuarios con su información básica como contraseña, email, etc..

Con esta breve explicación ya nos podemos hacer una idea de la estructura de la base de datos de WordPress y hacerno una idea que dónde se almacenan algunos datos aunque lo veremos un poco mejor más adelante en esta guía.

 

Relaciones entre las tablas de la base de datos

Para comprender un poco mejor la estructura de la base de datos de WordPress debemos entender cómo están relacionas entre ellas.

A continuación podemos ver un esquema de las relaciones entre las tablas obtenido del codex de WordPress.org.

En la imagen anterior podemos ver graficamente las relaciones entre las tablas de la base de datos de WordPress en sus últimas versiones.

Detallaremos un poco más la relación de cada una de las tablas más adelante en esta guía.

 

Detalle de cada una de las tablas

Tabla wp_commentmeta

Como ya hemos comentado anteriormente, en la tabla wp_commentmeta se almacenan los datos adicionales de o sobre los comentarios que se almacenan en una instalación de WordPress.

Estructura de la tabla wp_commentmeta:

Como podemos ver en la imagen anterior esta tabla es muy sencilla y sólo tiene 4 campos:

Campos tabla wp_commentmeta
meta_id Id principal de la tabla
comment_id Id del comentario (tabla wp_comments)
meta_key Clave del valor
meta_value Meta o valor del campo

Destacaremos que el cambio comment_id hace referencia al id de la tabla wp_comments por lo tanto queda claro que ambas están relacinonada a través de este campo.

Obtener datos de la tabla wp_commentmeta

Para obtener datos de la tabla wp_commentmeta podemo utilizar la función get_comment_meta() que nos devolverá el campo meta de un comentario.

 

Tabla wp_comments

Esta es la tabla donde se almacenan o guardan los comentarios que se han realizado en nuestro WordPress. Tanto los comentarios que se han aprobado como los que no han sido aprovados.

Estructura de la tabla wp_comments:

 

Campos tabla wp_comments
comment_ID Id del comentario
comment_post_ID Id del post (tabla wp_posts)
comment_author Autor del comentario
comment_author_email Email del autor del comentario
comment_author_url Url del autor del comentario
comment_author_IP Ip del autor del comentario
comment_date Fecha y hora del comentario
comment_date_gmt Fecha y hora del comentario (gmt)
comment_content Contenido del comentario
comment_karma Meta o valor del campo
comment_approved Aprobación del comentario (0, 1 o spam)
comment_agent Browser, sistema operativo, etc..
comment_type Tipo (pingback | trackback)
comment_parent Comentario padre del actual
user_id id del usuario si está registrado

Obtener datos de la tabla wp_comments

Para obtener datos de la tabla wp_comments podemo utilizar la función get_comments() que nos devolverá el campo meta de un comentario.

 

Tabla wp_links

Esta tabla se utilizaba en veriones anteriores pero se dejó de utilizar. Antes se utilizaba para la gestión de los enlaces.

Si necesistamos o queresmos volver a utilizar esta característica de WordPress la podemos seguir usando si instalamos el plugin “Link Manager“.

No se muestran detalles de esta tabla por que no se utiliza normalmente.

Para obtener más información sobre la tabla wp_links podemos visitar este enlace.

 

Tabla wp_options

Como ya hemos comentado al principio de esta guía en esta tabla se guardarán y gestionaran las opciones de nuestra instalación de WordPress.

Esta tabla es algo especial puesto que, en principio, no tiene ninguna relación con ningun otra tabla de la base de datos de WordPress.

Enl a siguiente captura podemos ver la tabla completa que crea WordPress tras la instalación.

Estructura de la tabla wp_options:

Esta tabla, como podemos ver, solo tiene 4 campos o filas.

Campos tabla wp_options
option_id Id de la opción
option_name Nombre de la opción
option_value Valor de la opción
autoload Si la opción se carga automaticamente

Obtener datos de la tabla wp_options

Tabla wp_postmeta

Cada meta data de un post se almacena en la tabla wp_postmeta.

Algunos plugins también pueden utilizar esta tabla para guardar su propia información.

Estructura de la tabla wp_postmeta:

Campos tabla wp_postmeta
meta_id Id de la información (meta)
post_id Id del post asociado
meta_key Clave del meta
meta_value Valor del meta (información)

Obtener datos de la tabla wp_postmeta

 

Tabla wp_posts

Aunque todas las tablas de la base de datos son muy importantes, la tabla wp_posts es por lo menos una de las más imporntes sino la más importante.

Debemos tener en cuenta que aquí, en la tabla wp_posts se almacena la información de los posts de WordPress lo que incluye entradas, páginas, etc…

Estructura de la tabla wp_posts:

 

Campos tabla wp_posts
ID Id de la información (meta)
post_author Autor del post
post_date Fecha del post
post_date_gmt Fecha del post (gmt)
post_content Contenido del post
post_title Título del post
post_excerpt Extracto del post
post_status Estado del post (publicado, borrador, etc..)
comment_status Estado comentarios (abiertos?)
ping_status Estado de los pings (abiertos?)
post_password Contraseña del post
post_name Nombre del post
to_ping Url a la que enviar pingback
pinged Url a la que se ha enviado pingback
post_modified Fecha y hora de modificarción del post
post_modified_gmt Fecha y hora de modificarción del post (gmt)
post_content_filtered Usado por algunos plugins de cache para guardar uan versión en caché
guid Url permanente al post
menu_order Número de orden en el menu
post_type Tipo de post (post, page…)
post_mime_type El Mime type de los ficheros subidos
comment_count Número de comentarios del post

Obtener datos de la tabla wp_posts

 

Tabla wp_termmeta

En este tabla se almacenan los metadatos relacionados con las categorías.

Estructura de la tabla wp_termmeta:

Campos tabla wp_termmeta
meta_id Id de la información (meta)
term_id Id del término
meta_key Clave del meta
meta_value Valor del meta (información)

Obtener datos de la tabla wp_termmeta

 

Tabla wp_terms

En la tabla wp_terms se guardan tanto las categorías como las etiquetas para los posts y páginas.

Estructura de la tabla wp_terms:

Campos tabla wp_terms
term_id Id de término
name Nombre del término
slug Slug del término
term_group Agrupación de terminos (alias)

Obtener datos de la tabla wp_terms

 

Tabla wp_term_relationships

Los posts están relacionados con categorías y etiquetas por la tabla wp_terms y esta asociación es mantenida en la tabla wp_term_relationships.

Estructura de la tabla wp_term_relationships:

Campos tabla wp_term_relationships
obtect_id Id de término
term_taxonomy_id Nombre del término
term_order Slug del término

Obtener datos de la tabla wp_term_relationships

 

Tabla wp_term_taxonomy

Esta tabla almacena la información que describe la taxonomía como categorías, tags, cpt... para las entradas de la tabla wp_terms.

Estructura de la tabla wp_term_taxonomy:

 

Campos tabla wp_term_taxonomy
term_taxonomy_id Id del témino de taxonomía
term_id Id del término
taxonomy Nombre de la taxonomía
description Descripción
parent Padre
count Número

 

Tabla wp_usermeta

En la tabla wp_usermeta se almacenan datos adicionales de los usuarios.

A continuación podemos ver el contenido de la tabla wp_usermeta tras la instalación de WordPress:

Estructura de la tabla wp_usermeta

 

Campos tabla wp_usermeta
umeta_id Id de la tabla
user_id Id del usuario (tabla wp_users)
meta_key Clave de la información o meta
meta_value Valor de la información o meta

Obtener datos de la tabla wp_usermeta

 

Tabla wp_users

Como su nombre indica, aquí se almacenan los datos de los usuarios: nombre, email, etc

Esta tabla está directamente relacionada con la tabla wp_usermeta.

Estructura de la tabla wp_users:

Campos tabla wp_users
ID Id del usuario
user_login Login o username para acceder
user_pass Contraseña del usuario (encriptada)
user_nicename Nombre del usuario que se muestra
user_email Email del usuario
user_url Campo url del usuario
user_registered Fecha y hora en que se registró el usuario
user_activation_key Se usa para reestablecer las contraseñas
user_status Se usaba antes
display_name nombre del usuario elegido para mostrar (user_login, user_nicename…)

Obtener datos de la tabla wp_users