Entendiendo un poco la estructura de la base de datos de WordPress

Respuesta rápida

La estructuración de la información en la BD de WP es bastante intuitiva gracias a los nombres de las tablas.

Respuesta completa

A pesar de usar las funciones y queries internas de WordPress -a partir de ahora WP- que nos facilitan la interacción con la base de datos -a partir de ahora BD-, para los developers es importante saber donde esta alojada la información.

De este modo, en caso de que las funciones y queries internas no hagan lo que queramos, podremos hacer queries personalizadas.

Comenzando por lo obvio, una página web no solo se basa en archivos, si no que también tiene una BD.

En nuestro caso, cuando instalamos WP estamos instalando su BD.

Su estructura se basa en tablas, y estas tablas en filas y columnas, como si fuera una hoja de Excel.

Todas las tablas tienen un prefijo, el que establecimos en wp-config.php

Las tablas de WP, siendo el prefijo ‘wp_’ son las siguientes:

wp_commentmeta
wp_comments

wp_links

wp_options

wp_postmeta
wp_posts

wp_terms
wp_term_relationships
wp_term_taxonomy

wp_usermeta
wp_users

Puede haber más tablas, pero las demás serán generadas por plugins.

Es bastante intuitivo que contiene cada tabla. Aún así, voy a aclarar la información de cada una de ellas.

wp_commentmeta

Deprecated, es decir, ya no se utiliza.

En versiones anteriores contenía los metadatos de los comentarios, ahora los metadatos se guardan en la misma tabla wp_comments.

wp_comments

En esta tabla se guardan todos los comentarios, junto con sus metadatos.

Algunos campos relevantes son: comment_ID, comment_post_ID, comment_author, comment_date, comment_content, comment_approved, …

El resto de campos los puedes ver aquí, o entrando en tu BD.

wp_links

Deprecated, es decir, ya no se utiliza.

En versiones anteriores se guardaban enlaces para mostrase en la barra lateral. Ahora esa función se hace a través de la pestaña ‘Menús’, así que ahora esta tabla carece de sentido.

wp_options

Aquí se guardan todos los datos de ámbito general, así como configuraciones de plugins y themes.

Para un developer esta tabla es esencial, ya que debe guardar aquí todos los datos de sus plugins y themes.

La estructura de la tabla es KEY => VALUE, siendo dichos campos ‘option_name’ => ‘option_value’.

Como developer, al crear un plugin, tendrá que decidir si guardar la información en esta tabla, o crear una tabla nueva.Esa decisión dependerá de la escalabilidad de los datos, es decir, si el plugin guardará un número finito de datos, lo mejor será usar esta tabla; en cambio, si los datos pueden llegar a ser infinitos, entonces será mejor crear una tabla aparte.

Para interactuar con esta tabla se usarán las funciones update_option(), get_option() y delete_option().

wp_posts

Aquí se guardan los datos básicos de los posts, las páginas y los archivos -attachments-, además de sus revisiones.

Algunos campos relevantes son: post_author, post_date, post_content, post_title, post_type, …

El resto de campos los puedes ver aquí, o entrando en tu BD.

wp_postmeta

Aquí se guardan los metadatos de los posts/páginas/attachemnts de la tabla anterior.

Mayoritariamente, los datos de esta tabla contienes campos personalizados (los famosos custom fields).

La estructura de la tabla es KEY => VALUE, siendo dichos campos ‘meta_key’ => ‘meta_value’.

wp_terms
wp_term_relationships
wp_term_taxonomy

Estas tablas contienen los datos y metadatos de las categorías y etiquetas.

wp_users

Esta tabla contiene la información mínima de los usuarios.

Algunos campos relevantes son: user_login, user_pass, user_email, display_name, …

El resto de campos los puedes ver aquí, o entrando en tu BD.

La contraseña ‘user_pass’ está encriptada, aportando toda la seguridad posible.

Si te has olvidado de la contraseña y no la puedes recuperar mediante el correo puedes cambiar el campo ‘user_pass’ con una contraseña encriptada ya conocida, es decir, instalas otro WP y escribes una contraseña, luego copias el campo ‘user_pass’ de la BD de esa contraseña y la pegas en el campo ‘user_pass’ de la BD que no te sabes la contraseña.

wp_usermeta

Esta tabla contiene el resto de metadatos de los usuarios.

La estructura de la tabla es KEY => VALUE, siendo dichos campos ‘meta_key’ => ‘meta_value’.

Algunos datos relevantes que se guardan aquí son: first_name, last_name, description, wp_capabilities, wp_user_level, …