WordPress utiliza una base de datos para almacenar, recuperar y mostrar todo el contenido que creas en tu sitio web. Esto incluye entradas, páginas, comentarios y mucho más.
La base de datos también se utiliza para almacenar información sobre los usuarios de tu sitio web y varias opciones del sitio que hacen funcionar tu sitio.
Como aprendiste en la lección sobre servidores web, WordPress utiliza MySQL. MySQL es un sistema de gestión de bases de datos gratuito y de código abierto que utilizan muchas aplicaciones web populares.
Interactuar con la base de datos de WordPress
Hay varias formas de interactuar directamente con la base de datos de WordPress.
La mayoría de los entornos de desarrollo local o empresas de alojamiento utilizan una herramienta gratuita llamada phpMyAdmin. phpMyAdmin es una herramienta basada en la web que te permite interactuar con tu base de datos de WordPress mediante un navegador web.
Una alternativa a phpMyAdmin es una herramienta llamada Adminer. Adminer es un único archivo PHP que puedes subir a tu sitio web y proporciona una interfaz similar a la de phpMyAdmin. Algunas empresas de alojamiento y entornos de desarrollo local prefieren utilizar Adminer en lugar de phpMyAdmin.
Por último, si no tienes acceso a ninguna de las dos, también puedes instalar un plugin llamado SQL Buddy.
Este es un plugin gratuito de WordPress que proporciona una interfaz similar a la de phpMyAdmin y Adminer, pero se ejecuta dentro del escritorio de WordPress.
Si decides utilizar SQL Buddy, recuerda desactivar y eliminar el plugin cuando termines de usarlo. Dejarlo instalado en tu sitio web supone un posible riesgo de seguridad.
Tablas de la base de datos
Para los fines de esta lección, utilizaremos PhpMyAdmin para inspeccionar las tablas de la base de datos.
La base de datos de WordPress está compuesta por muchas tablas. Cada tabla almacena un tipo de datos diferente de tu sitio web.
Cada tabla tiene el mismo prefijo, que se define en el archivo wp-config.php. De forma predeterminada, el prefijo es wp_, pero puedes cambiarlo por cualquier otro durante el proceso de instalación de WordPress.
Comencemos observando las tablas más importantes para gestionar el contenido.
wp_posts y wp_postmeta
La tabla wp_posts probablemente sea la tabla más importante de un sitio de WordPress y almacena información sobre las entradas, páginas o cualquier otro tipo de entrada personalizada de tu sitio web. Cada fila de la tabla wp_posts representa una sola entrada. La tabla wp_postmeta te permite almacenar información adicional sobre cada entrada. Los metadatos de las entradas también suelen denominarse campos personalizados.
wp_comments y wp_commentmeta
La tabla wp_comments almacena información sobre los comentarios de tus entradas y páginas. Cuando alguien comenta una entrada o página, ese comentario se almacena en esta tabla. Cada fila de la tabla wp_comments representa un solo comentario. La tabla wp_commentmeta puede almacenar información adicional sobre cada comentario.
wp_user y wp_usermeta
La tabla wp_users almacena toda la información sobre los usuarios de tu sitio web. Cada fila de la tabla wp_users representa un solo usuario. Al igual que otras tablas de metadatos, la tabla wp_usermeta puede almacenar información adicional sobre cada usuario.
Funciones para interactuar con entradas, comentarios y usuarios
Para todas las tablas de la base de datos de WordPress, existen funciones que puedes utilizar para interactuar con esa tabla.
Estas funciones forman parte de la API de base de datos de WordPress.
Puedes encontrar todas estas funciones mediante la función de búsqueda de la documentación para desarrolladores de WordPress, en Referencia del código.
En general, las funciones que puedes utilizar para interactuar con la base de datos de WordPress siguen un patrón similar.
Existe una función para insertar, una función para actualizar y una función para eliminar.
Normalmente tienen el mismo nombre, con el prefijo wp_ seguido de la acción y después del nombre de la tabla.
Veamos, por ejemplo, estas funciones para las entradas:
wp_insert_postes la función para crear una entrada nuevawp_update_postes la función para actualizar una entrada existentewp_delete_postes la función para eliminar una entrada
Después, normalmente hay funciones para obtener todos los registros de una tabla o un solo registro.
Normalmente tienen el mismo nombre, con el prefijo get_ seguido del nombre singular o plural de la tabla.
Por ejemplo, get_posts es la función para obtener una colección de entradas.
Y get_post es la función para obtener una sola entrada.
Cada una de estas funciones suele tener varios parámetros que puedes utilizar para filtrar los resultados que se devuelven.
Además, existen funciones para interactuar con cualquier tabla de metadatos, normalmente para insertar, actualizar o eliminar campos de metadatos.
Normalmente tienen el mismo nombre, con la acción seguida del nombre singular de la tabla y después de _meta.
Por ejemplo, para las entradas, add_post_meta es la función para insertar un campo de metadatos.
De forma similar, update_post_meta es la función para actualizar un campo de metadatos y delete_post_meta es la función para eliminar un campo de metadatos.
wp_terms, wp_termmeta, wp_term_relationships y wp_term_taxonomy
Las tablas wp_terms, wp_termmeta, wp_term_relationships y wp_term_taxonomy son las tablas que gestionan las categorías y etiquetas de tu sitio de WordPress.
La tabla wp_terms almacena información sobre los términos de tu sitio web. Cada fila de la tabla wp_terms representa un solo término. Internamente, las categorías y las etiquetas son términos.
Lo que determina si son una categoría o una etiqueta es la taxonomía con la que están asociadas, que se almacena en la tabla wp_term_taxonomy.
La tabla wp_term_relationships almacena las relaciones entre los términos y sus objetos principales, ya sea una entrada, una página o un tipo de entrada personalizada.
Por último, la tabla wp_termmeta puede almacenar información adicional sobre cada término.
Funciones para interactuar con términos y taxonomías
Al igual que ocurre con las funciones para interactuar con entradas, comentarios y usuarios, también existen funciones para interactuar con términos y taxonomías, que puedes encontrar buscando «term» o «taxonomy» en la Referencia del código de WordPress.
wp_options
La tabla wp_options almacena información sobre la configuración de tu sitio web. Cada fila de la tabla wp_options representa una configuración específica. Por ejemplo, la opción siteurl almacena la URL de tu sitio web y la opción blogdescription almacena la descripción corta de tu sitio web. La tabla wp_options también almacena información sobre el tema activo y los plugins activos de tu sitio web.
Los datos se almacenan en la tabla wp_options utilizando un formato de clave-valor. La clave es el nombre de la opción y el valor es el valor de la opción.
También es posible almacenar datos serializados en la tabla wp_options. Los datos serializados son una cadena que contiene varios valores. Los datos serializados suelen utilizarse para almacenar matrices y objetos de datos. Un buen ejemplo de esto es la lista de plugins activos, que se almacena como una matriz serializada.
Funciones para interactuar con las opciones
La API de opciones se utiliza normalmente junto con la API de ajustes para crear páginas de ajustes para el escritorio de WordPress, ya sea mediante el núcleo, plugins o temas. La API de opciones proporciona funciones para interactuar con la tabla wp_options, como add_option, update_option y delete_option.
wp_links
La tabla wp_links almacena información sobre los enlaces de tu sitio web. Los enlaces eran una función que se eliminó de WordPress en la versión 3.5.
Sin embargo, como todavía es posible volver a activar esta funcionalidad utilizando el plugin Links Manager, la tabla se ha mantenido por compatibilidad con versiones anteriores.
Conclusión
Poder identificar correctamente las tablas de una base de datos de WordPress e interactuar con ellas es una habilidad extremadamente útil y te ayudará a comprender mejor cómo funciona WordPress cuando desarrollas con WordPress.