La guía definitiva para la base de datos de WordPress
Publicado: 2022-02-09En esencia, WordPress es un CMS (Sistema de gestión de contenido). Para administrar el contenido, necesita poder almacenarlo. WordPress hace esto a través de carpetas y archivos, y una base de datos. Anteriormente hemos cubierto el sistema de archivos de WordPress en un artículo separado; esta vez nos centraremos en la base de datos.
En este artículo, veremos la base de datos de WordPress, su estructura y cómo funciona cada campo. También hemos incluido una breve lección de historia sobre MySQL. Sugerencia: My en MySQL no significa que sea tuyo; Mi es una persona real, pero ¿quién? - Continúe leyendo para averiguar.
Tabla de contenido
- Una (muy) breve historia de SQL, MySQL y MariaDB
- Cómo acceder a la base de datos de WordPress
- phpMyAdmin
- Plesk/cPanel
- Cliente SSH/MySQL/MariaDB
- Complementos de WordPress
- Estructura de la base de datos de WordPress
- Estructura de la mesa
- wp_commentmeta
- wp_comentarios
- wp_enlaces
- opciones_wp
- wp_postmeta
- wp_posts
- wp_terms
- wp_termmeta
- wp_term_relationships
- wp_term_taxonomy
- wp_usermeta
- usuarios_wp
- Estructura de la mesa
Una (muy) breve historia de SQL, MySQL y MariaDB
WordPress usa un RDBMS llamado MySQL. Técnicamente está basado en MySQL ya que, cada vez más, se utiliza MariaDB en lugar de MySQL. SQL significa Lenguaje de consulta estructurado y es el lenguaje que usamos para interactuar con la base de datos, y no la base de datos en sí.
MySQL ha jugado un papel importante en el crecimiento de Internet tal como lo conocemos hoy. Presentado por primera vez en 1995 como una alternativa a los productos ofrecidos por Microsoft y Oracle, se convirtió rápidamente en el estándar de referencia de RDBMS.
La historia de MySQL es colorida, ya que fue adquirida por Sun Microsystems y luego por Oracle (Oracle adquirió Sun Microsystems y MySQL con ella).
En respuesta a la adquisición de MySQL por parte de Oracle, Monty Widenius, el creador original de MySQL, introdujo MySQL en MariaDB, que nombró en honor a su hija, María. (Curiosamente, MySQL lleva el nombre de la otra hija de Monty: My). Con el tiempo, se desarrollaron diferencias entre MariaDB y MySQL; sin embargo, los dos siguen siendo intercambiables en muchos escenarios, incluidas las bases de datos de WordPress.
De hecho, en muchos casos, MariaDB se considera un reemplazo directo de MySQL. Esto significa que puede desinstalar MySQL, instalar MariaDB en su lugar y continuar trabajando como si nada hubiera cambiado. Dicho esto, MariaDB puede ofrecer mejoras de rendimiento en algunas situaciones y también ofrece una compatibilidad más amplia con, por ejemplo, motores de almacenamiento.
Es importante tener en cuenta que MySQL sigue siendo gratuito y se publica bajo un sistema de licencia dual. En muchos casos, MySQL se usa para referirse a bases de datos que son MySQL o MariaDB.
Cómo acceder a la base de datos de WordPress
Hay algunas opciones diferentes disponibles cuando se trata de conectarse a la base de datos de WordPress. El método o los métodos disponibles para usted dependerán en gran medida del tipo de alojamiento de WordPress que utilice. Si no está seguro de cómo está configurado su servidor, hable con su proveedor de alojamiento o administrador de sistemas. De cualquier manera, las opciones pueden incluir;
phpMyAdmin
phpMyAdmin es una herramienta favorita ya que nos permite conectarnos a la base de datos a través de una GUI basada en web. phpMyAdmin debe instalarse en el mismo servidor que aloja la base de datos, y muchos proveedores de alojamiento ofrecen phpMyAdmin directamente.
Plesk/cPanel
Plesk y cPanel son dos plataformas de panel de control que cumplen una función similar: una interfaz de usuario que facilita la administración del servidor. Por supuesto, existen ciertas diferencias clave, incluidas las tecnologías y los sistemas operativos que admiten. De cualquier manera, también nos permiten acceder a bases de datos, aunque de formas ligeramente diferentes.
Cliente SSH/MySQL/mariaDB
SSH es una forma menos fácil de usar para conectarse a una base de datos, que ofrece una CLI (interfaz de línea de comandos) en lugar de una GUI. Debido a esto, se recomienda una comprensión más profunda de los comandos SQL. SSH debe configurarse explícitamente en el mismo servidor que aloja la base de datos antes de conectarse a ella.
Complementos
También puede usar complementos de WordPress para acceder a su base de datos de WordPress. Con un complemento, puede acceder a la base de datos directamente desde su consola de administración de WordPress. Aquí, deberá asegurarse de elegir un complemento de un proveedor de confianza y seguir todas las mejores prácticas aplicables para mantener sus datos seguros. Si no está seguro de qué complemento elegir, lea nuestra guía sobre cómo elegir los mejores complementos para su sitio web de WordPress.
Estructura de la base de datos de WordPress
La base de datos de WordPress se compone de 12 tablas. Cada tabla, por defecto, comienza con el prefijo wp_; sin embargo, esto se puede cambiar durante el proceso de instalación y configuración inicial. Por lo general, se recomienda cambiar el prefijo por razones de seguridad de WordPress, especialmente si tiene la intención o ya tiene varias instalaciones en el mismo servidor.
Las 12 tablas que componen la base de datos de WordPress son las siguientes (enumeradas en orden alfabético):
- wp_commentmeta
- wp_comentarios
- wp_enlaces
- opciones_wp
- wp_postmeta
- wp_posts
- wp_terms
- wp_termmeta
- wp_term_relationships
- wp_term_taxonomy
- wp_usermeta
- usuarios_wp
Ahora revisaremos cada tabla individualmente y veremos qué datos almacena y su estructura interna.
Estructura de la mesa
Antes de entrar en los detalles de cada tabla, vale la pena tomarse un tiempo para ver cómo está estructurada. Si no está familiarizado con la documentación de la base de datos, esta sección le brindará un curso intensivo que encontrará útil en la siguiente sección. Por otro lado, si está bastante familiarizado con las tablas SQL, no dude en saltar hacia adelante.
- Nombre del campo: este es el nombre del campo, que encontrará en la tabla SQL
- Descripción: hemos incluido esto para ayudarlo a comprender qué tipo de datos contiene el campo
- Tipo: este es el tipo de datos que acepta el campo. Los números entre paréntesis representan el límite estricto en la cantidad de caracteres aceptables que podemos ingresar
- Nulo: no está claro por qué se usa este campo en este momento
- Clave – Esto nos dice si la entrada es una clave o no. Hay diferentes tipos de llaves, incluyendo:
- Primario
- Primaria (Parte)
- Índice
- Índice (Parte)
- Único
- Múltiple
- Predeterminado: si la entrada tiene un valor predeterminado, el valor predeterminado se mostrará aquí
- Notas: cualquier nota adicional
wp_commentmeta
La tabla wp_commentsmeta almacena metadatos relacionados con los comentarios. Los comentarios se almacenan por separado en la tabla wp_comments. La tabla tiene los siguientes campos:
Nombre de la columna | Descripción | Tipo | Nulo | Llave | Defecto |
---|---|---|---|---|---|
meta_id | Esta es una identificación única para la entrada. Se incrementa automáticamente | bigint(20)sin firmar | Primario | ||
comentario_id | Este es el ID del comentario con el que se relacionan los metadatos tal como se encuentra en la tabla wp_comments | bigint(20)sin firmar | Índice | 0 | |
meta_clave | Esto identifica el tipo de metadatos para la entrada. | varchar(255) | Sí | Índice | Nulo |
meta_valor | Estos son los metadatos reales | texto largo | Sí | Nulo |
wp_comentarios
La tabla wp_comments almacena comentarios de publicaciones. Los metadatos relacionados con los comentarios se almacenan en la tabla wp_commentmeta. La tabla tiene las siguientes columnas:
Nombre de la columna | Descripción | Tipo | Nulo | Llave | Defecto |
---|---|---|---|---|---|
comentario_ID | Esta es una identificación única para la entrada. Se incrementa automáticamente | grande(20) | Primario | N / A | |
comment_post_ID | Este es el ID de la publicación para la que se escribió el comentario, tal como se encuentra en la tabla wp_posts | grande(20) | Índice | 0 | |
comentario_autor | Este es el nombre del autor que escribió el comentario. | pequeñotexto | |||
comentario_autor_correo electrónico | Esta es la dirección de correo electrónico del autor que escribió el comentario. | varchar(100) | Índice | ||
comentario_autor_url | Esta es la URL del sitio web del autor que escribió el comentario. | varchar(200) | |||
comentario_autor_IP | Esta es la dirección IP del autor que escribió el comentario. | varchar(100) | |||
comentario_fecha | Esta es la fecha y hora en que se publicó el comentario. | fecha y hora | 0000-00-00 00:00:00 | ||
comentario_fecha_gmt | Esta es la fecha y hora GMT (hora del meridiano de Greenwich) en la que se publicó el comentario. | fecha y hora | Índice e Índice Pt2 | 0000-00-00 00:00:00 | |
comentario_contenido | Este es el comentario real dejado | texto | |||
comentario_karma | Esto está disponible para que lo usen los complementos con fines de gestión de comentarios. | int(11) | |||
comentario_aprobado | Esto indica si el comentario ha sido aprobado o no. | varchar(20) | Índice Parte 1 | 0 | |
comentario_agente | Desde aquí se publicó el comentario. | varchar(255) | |||
comentario_tipo | Este es el tipo de comentario dejado. | varchar(20) | |||
comentario_padre | Si el comentario es una respuesta, este campo indica comentario principal | bigint(20)sin firmar | Índice | 0 | |
id_usuario | Si un usuario comentador está registrado, esta será su ID disponible en wp_users | bigint(20)sin firmar | 0 |
wp_enlaces
Esta tabla se creó originalmente para admitir blogrolls, una función que se eliminó a partir de WordPress 3.5. Se mantiene por compatibilidad con versiones anteriores, pero ya no está en uso. La tabla tiene las siguientes columnas:
Nombre de la columna | Descripción | Tipo | Nulo | Llave | Defecto |
---|---|---|---|---|---|
link_id | Esta es una identificación única para la entrada. Incrementa automáticamente | bigint (20) sin firmar | Primario | ||
URL del enlace | Esta es la URL del enlace. | varchar(255) | |||
enlace_nombre | |||||
Este es el nombre del enlace. | varchar(255) | ||||
enlace_imagen | Esta es la URL de la imagen relacionada con el enlace. | varchar(255) | |||
enlace_objetivo | Este es el marco de destino del enlace. | varchar(25) | |||
enlace_descripcion | Esta es una descripción del enlace. | varchar(255) | |||
enlace_visible | Esto nos dice si el enlace se muestra públicamente o no. | varchar(20) | Índice | Y | |
propietario_del_enlace | Esta es la ID de usuario del usuario que creó el enlace como disponible en wp_users | bigint (20) sin firmar | 1 | ||
link_rating | Esta es la calificación del enlace. | int(11) | 0 | ||
enlace_actualizado | Esta es la fecha y hora en que se actualizó el enlace. | fecha y hora | 0000-00-00 00:00:00 | ||
link_rel | Esta es la relación del enlace. | varchar(255) | |||
enlace_notas | Estas son notas sobre el enlace. | texto medio | |||
enlace_rss | Esta es la dirección del feed rss del enlace | varchar(255) |
opciones_wp
La configuración de WordPress configurada a través de la consola de administración se almacena aquí. Los complementos y temas generalmente también almacenarán información de configuración aquí, como se ilustra en la captura de pantalla a continuación. Aquí podemos ver nuestra propia opción de frecuencia de escaneo del Monitor de cambios de archivos del sitio web establecida en diario.
La tabla tiene las siguientes columnas:
Nombre de la columna | Descripción | Tipo | Nulo | Llave | Defecto |
---|---|---|---|---|---|
opción_id | Esta es una identificación única para la entrada. Incrementa automáticamente. | bigint(20) sin firmar | Primario | ||
opción_nombre | Este es el nombre de la opción/configuración | varchar(64) | Único | ||
valor de la opción | Este es el valor de la configuración que se está almacenando | texto largo | |||
carga automática | Esta configuración le dice a wp_load_alloptions() si debe cargar automáticamente la opción o no | varchar(20) | Índice | sí |
wp_postmeta
Los metadatos de las publicaciones que acompañan a cada publicación se almacenan aquí. Los metadatos pueden incluir archivos adjuntos, miniaturas, slug de publicación deseada y otra información similar. La tabla tiene las siguientes columnas:
Nombre de la columna | Descripción | Tipo | Nulo | Llave | Defecto |
---|---|---|---|---|---|
meta_id | Esta es una identificación única para la entrada. Incrementa automáticamente | bigint(20) sin firmar | Primario | ||
Nombre del campo ID del mensaje | Este es el ID de la publicación a la que están asociados los metadatos como disponible en wp_posts | bigint(20) sin firmar | Índice | 0 | |
meta_clave | Esta es una clave de índice que identifica los metadatos, ya que cada publicación puede tener más de un metadato. | varchar(255) | Sí | Índice | Nulo |
meta_valor | Estos son los metadatos reales | texto largo | Sí | Nulo |
wp_posts
La tabla wp_posts es importante y contiene el núcleo de los datos de WordPress. Contiene las publicaciones reales, las páginas y los elementos del menú de navegación, como se ve en el siguiente ejemplo que muestra la página de muestra predeterminada incluida en cada instalación nueva de WordPress.
La tabla tiene las siguientes columnas:
Nombre de la columna | Descripción | Tipo | Nulo | Llave | Defecto |
---|---|---|---|---|---|
IDENTIFICACIÓN | Esta es una identificación única para la entrada. Incrementa automáticamente | bigint(20) sin firmar | Primaria e Índice (Parte 4) | ||
post_autor | Esta es la identificación del autor que escribió la publicación como disponible en wp_users | bigint(20) sin firmar | Índice | 0 | |
posfechar | Esta es la fecha y hora en que se creó la publicación. | fecha y hora | Índice (Parte 3) | 0000-00-00 00:00:00 | |
post_date_gmt | Esta es la fecha y hora GMT (hora del meridiano de Greenwich) cuando se creó la publicación | fecha y hora | 0000-00-00 00:00:00 | ||
Publicar Contenido | Este es el contenido real de la publicación. | texto largo | |||
título de la entrada | este es el titulo de la publicacion | texto | |||
post_extracto | Este es un extracto de la publicación. | texto | |||
post_status | Este es el estado de la publicación. | varchar(20) | Índice (Parte 2) | publicar | |
estado_comentario | Esto nos dice si los comentarios en la publicación están permitidos o no. | varchar(20) | abierto | ||
estado_ping | Esto nos dice si el ping y los trackbacks están permitidos o no. | varchar(20) | abierto | ||
post_contraseña | Las publicaciones se pueden proteger con contraseña con cualquier contraseña aplicable almacenada aquí | varchar(20) | |||
Nombre del puesto | Este es el slug de la URL del título de la publicación. | varchar(200) | índice | ||
to_ping | Esta es una lista de URL a las que WordPress debe enviar pingbacks cada vez que se actualiza la publicación. | texto | |||
hecho ping | Esta es una lista de URL que WordPress ha hecho pingback cuando se actualizó | texto | |||
post_modificado | Esta es la fecha y hora de la última modificación de la publicación. | fecha y hora | 0000-00-00 00:00:00 | ||
post_modificado_gmt | Esta es la fecha y hora GMT de la última modificación de la publicación. | fecha y hora | 0000-00-00 00:00:00 | ||
post_content_filtered | Esta es una versión filtrada de post_content que normalmente usan los complementos con fines de almacenamiento en caché. | texto largo | |||
post_parent | Cuando la publicación es una revisión o archivo adjunto, esto crea la relación padre-hijo | bigint(20) sin firmar | Índice | 0 | |
guía | Este es el identificador único global (GUID) de la publicación | varchar(255) | |||
menu_order | Este es el número de pedido en el que aparecen las páginas y los elementos que no son de publicación. | int(11) | 0 | ||
tipo de mensaje | Esto identifica el tipo de contenido. | varchar(20) | Índice (Parte 1) | correo | |
post_mime_type | Este es el tipo mime de archivos adjuntos de publicación. | varchar(100) | |||
Recuento de comentarios | Este es el número total de comentarios, trackbacks y pingbacks | grande(20) | 0 |
wp_terms
Los términos son objetos de clasificación utilizados para clasificar objetos en WordPress. Por ejemplo, las categorías y etiquetas utilizadas en las publicaciones son tipos de términos. Esta tabla contiene todos los diferentes tipos de términos utilizados en WordPress. La tabla tiene las siguientes columnas:
Nombre de la columna | Descripción | Tipo | Nulo | Llave | Defecto |
---|---|---|---|---|---|
term_id | Esta es una identificación única para la entrada. Incrementa automáticamente | bigint(20) sin firmar | Primario | ||
nombre | Este es el nombre del término | varchar(200) | Índice | ||
babosa | Esta es la babosa del término | varchar(200) | Múltiple | ||
término_grupo | Este es un alias que los temas y complementos pueden usar para agrupar términos juntos | grande(10) | 0 |
wp_termmeta
Esta tabla almacena los metadatos asociados con los términos que se encuentran en wp_terms. La tabla tiene las siguientes columnas:
Nombre de la columna | Descripción | Tipo | Nulo | Llave | Defecto |
---|---|---|---|---|---|
meta_id | Esta es una identificación única para la entrada. Incrementa automáticamente | bigint(20) sin firmar | Primario | ||
term_id | Este es el ID del término con el que se relacionan los metadatos según esté disponible en wp_terms | bigint(20) sin firmar | Índice | 0 | |
meta_clave | Esta es una clave de identificación para el término metadatos | varchar(255) | Sí | Índice | NULO |
meta_valor | Estos son los metadatos reales | texto largo | Sí | NULO |
wp_term_relationships
Esta tabla mantiene relaciones entre publicaciones y taxonomías. La tabla tiene las siguientes columnas:
Nombre de la columna | Descripción | Tipo | Nulo | Llave | Defecto |
---|---|---|---|---|---|
id_objeto | Este es el ID de la publicación disponible en wp_posts | bigint(20) sin firmar | Primaria (Parte 1) | 0 | |
term_taxonomy_id | Este es el ID del término taxonomía disponible en wp_term_taxonomy | bigint(20) sin firmar | Primaria (Parte 2) e Índice | 0 | |
term_order | Este es el orden del término. | int(11) | 0 |
wp_term_taxonomy
Esta tabla proporciona taxonomías de términos y, como tal, un contexto en el que se pueden utilizar. Por ejemplo, podemos usar el término base de datos como una categoría de publicación y como una categoría de producto (suponiendo que estamos vendiendo servicios de base de datos). En este caso, la categoría de publicación y la categoría de producto son taxonomías de términos. La tabla tiene las siguientes columnas:
Nombre de la columna | Descripción | Tipo | Nulo | Llave | Defecto |
---|---|---|---|---|---|
term_taxonomy_id | Esta es una identificación única para la entrada. Incrementa automáticamente | bigint(20) sin firmar | Primario | ||
term_id | Este es el ID del término disponible en wp_terms | bigint(20) sin firmar | Único (Parte 1) | 0 | |
taxonomía | Esta es la babosa de la taxonomía. | varchar(32) | Único (Parte 2) e Índice | ||
descripción | Esta es una descripción de la taxonomía. | texto largo | |||
padre | Este es el ID de la taxonomía principal si la taxonomía es secundaria | bigint(20) sin firmar | 0 | ||
contar | Este es el número de objetos a los que se les asigna esta taxonomía. | grande(20) | 0 |
wp_usermeta
Esta tabla almacena datos de usuario adicionales que no se encuentran en la tabla wp_users. El propio WordPress, así como los complementos o temas, pueden hacer uso de esta tabla.
Un ejemplo de metadatos de usuario es el apodo de usuario. Aunque WordPress incluye este campo por defecto, sigue siendo parte de los metadatos, como se muestra a continuación. Otro ejemplo es WooCommerce; un complemento de comercio electrónico que utiliza esta tabla para almacenar información del cliente, como la dirección de envío.
La tabla tiene las siguientes columnas:
Nombre de la columna | Descripción | Tipo | Nulo | Llave | Defecto |
---|---|---|---|---|---|
umeta_id | Esta es una identificación única para la entrada. Incrementa automáticamente | bigint(20) sin firmar | Primario | ||
id_usuario | Esta es la identificación del usuario con la que se relaciona la información que se encuentra en wp_users | bigint(20) sin firmar | Índice | 0 | |
meta_clave | Este es un identificador clave para la entrada meta | varchar(255) | sí | Índice | Nulo |
meta_valor | Estos son los metadatos reales | texto largo | Sí | Nulo |
usuarios_wp
La información de los usuarios de WordPress se almacena aquí. Dado que los usuarios son una parte integral del ecosistema de WordPress, esta tabla es esencial.
La tabla solo almacena la información principal de cada usuario, como se muestra en el siguiente ejemplo. Toda la demás información se almacena en la tabla wp_usermeta.
La tabla tiene las siguientes columnas:
Nombre de la columna | Descripción | Tipo | Nulo | Llave | Defecto |
---|---|---|---|---|---|
IDENTIFICACIÓN | Esta es una identificación única para la entrada. Incrementa automáticamente | bigint(20) sin firmar | Primario | ||
inicio de sesión de usuario | Este es el nombre de usuario del usuario. | varchar(60) | Índice | ||
contraseña de usuario | Esta es la contraseña del usuario. | varchar(64) | |||
nombre_de_usuario | Este es el nombre para mostrar del usuario. | varchar(50) | Índice | ||
usuario_email | Esta es la dirección de correo electrónico del usuario. | varchar(100) | |||
url_usuario | Esta es la URL del usuario (ej. sitio web) | varchar(100) | |||
usuario_registrado | Esta es la fecha y hora en que se registró el usuario | fecha y hora | 0000-00-00 00:00:00 | ||
clave_de_activación_de_usuario | Esta es la clave de activación del usuario, utilizada para restablecer su contraseña | varchar(60) | |||
Estatus de usuario | Esto ya no se usa a partir de WordPress 3.0, pero se usa para indicar si el usuario era spam | int(11) | 0 | ||
nombre para mostrar | Este es el nombre para mostrar público del usuario. | varchar(250) |
Familiarízate con la base de datos de WordPress
Las bases de datos pueden ser bastante intimidantes para los no iniciados; después de todo, contienen todos los datos necesarios para que WordPress funcione. Si bien es cierto que un paso en falso aquí puede hacer que el sitio se derrumbe, no dejes que esto te intimide. Después de todo, conocer la base de datos de WordPress puede facilitar enormemente sus esfuerzos de resolución de problemas en caso de que sea necesario.
La configuración de un entorno de prueba o ensayo puede proporcionarle un espacio seguro en el que puede experimentar sin correr el riesgo de desconectar su sitio web. Incluso puede configurar un entorno de prueba XAMPP en su computadora de forma gratuita, brindándole todo lo que necesita para dominar la base de datos de WordPress.