PDF de programación - VisDa: La base de datos de WordPress

Imágen de pdf VisDa: La base de datos de WordPress

VisDa: La base de datos de WordPressgráfica de visualizaciones

Publicado el 2 de Abril del 2017
810 visualizaciones desde el 2 de Abril del 2017
1.015,6 KB
23 paginas
Creado hace 7a (22/06/2012)
VisDa: La base de datos
de WordPress

Autor: Carlos Casado Martínez

Mosaic, junio de 2012

El acceso a la base de datos de WordPress desde nuestro Plugin

Introducción
WordPress es un gestor de contenidos especializado en la gestión de blogs muy usado por su
potencia, flexibilidad, facilidad de uso y por ser GPL. Como la mayoría de gestores de contenidos
actuales, WordPress puede ser fácilmente ampliado mediante la adición de plugins que cualquiera
puede programar y distribuir apoyándose en la documentación que los desarrolladores del programa
ponen a disposición de la comunidad.
Esta material pretende ser una ayuda para aquellas personas que desean hacer un plugin para
WordPress y en particular para aquellos que deseen visualizar la información de un blog realizado
con dicho gestor de contenidos.
Si queremos hacer un plugin para WordPress es posible que queramos recuperar alguna información
de la base de datos. Si queremos listar las etiquetas más usadas, los usuarios que más escriben, los
posts con más comentarios, deberemos acceder a la base de datos para poder recuperar esa
información.
En general, si queremos recuperar cualquier contenido generado por el usuario y almacenado en
WordPress, deberemos acceder a la base de datos y recuperar de allí la información. En la base de
datos se guarda información sobre las entradas, los usuarios, etiquetas, comentarios, … Conocer la
base de datos, como está estructurada: tablas, campos, relaciones; que información podemos
encontrar en ella y de qué manera extraer los datos es imprescindible si queremos crear un plugin
que use la información generada por el usuario. Este apartado pretende explicar cómo extraer
información de la base de datos.
Antes de entrar en la estructura de la base de datos de WordPress, hay que tener presente que
WordPress usa MySQL y está programado en PHP. Se le supone al lector un cierto conocimiento de
MySQL y el acceso a los datos desde PHP.
Para explicar algunas características de la base de datos de WordPress usaremos datos de la revista
Mosaic (http://mosaic.uoc.edu). Mosaic es una revista electrónica que en el momento de redactar
este material tiene algo más de 10 años de vida y 94 números.
Este material se divide básicamente en dos partes: la primera es un repaso exhaustivo de la base de
datos de WordPress y la segunda explica como obtener los datos que nos interesan desde un plugin.
Este documento está actualizado a la versión 3.4 de WordPress. Aunque la base de datos de WP es
bastante estable y no suele modificarse con los cambios de versión, es conveniente tener en cuenta
que en futuras versiones la base de datos podría no ser exactamente igual a la que se trata en este
material.

Algunos detalles de nomenclatura
WordPress, como gestor de contenidos especializado en blogs, basa toda la estructura de su base de
datos en el contenido principal, los posts, aunque tiene también otro tipo de contenido, al que llama
páginas. La diferencia principal es que las páginas están pensadas para contenido que siempre debe
estar presente y que acostumbra a ser accesible desde un menú en la página principal del blog. Por
contra, los posts aparecen al principio de la primera página cuando hace poco que están escritos y

1

Mosaic, junio de 2012

van hundiéndose en la estructura del blog a medida que van siendo más antiguos y otros más
modernos van ocupando su posición.
En castellano la palabra post suele traducirse por entrada o por artículo, aunque sigue siendo
bastante común el uso de la palabra inglesa. En este texto se usan indiferentemente, post y entrada.
En cuanto a las páginas, conviene diferenciar una página de WordPress de una página web. En este
documento todas las veces que se use la palabra página será con referencia a las páginas de
WordPress, a menos que se especifique “web” a continuación.
Finalmente usaremos, como WordPress, la palabra término para referirnos de manera genérica a
categorías y etiquetas.

Estructura de la base de datos de WordPress
La base de datos de WordPress se fundamenta en estas once tablas:
Nombre de la tabla
wp_post

wp_links
wp_term_relationships A través de esta tabla se relacionan las entradas y los enlaces con sus

Descripción
Es la tabla más importante de la base de datos de WordPress. Guarda
información sobre las entradas, las páginas, los ficheros adjuntos y los
menús. Para cada versión de una entrada se guarda su contenido, el
título, el autor, la fecha, el resumen, estatus,...
Existe un campo (post_type) que indica de qué tipo es.
Metadatos de las entradas. Entre otras cosas guarda información sobre
los adjuntos asociados.
En esta tabla se guardan los comentarios con su información asociada:
autor, fecha, contenido, si está o no aprobado...
Metadatos de los comentarios. Tan solo es usada por algunos plugins
como Akismet
Lista de enlaces.

respectivas etiquetas y categorías.
Tabla de etiquetas y categorías. WordPress guarda juntas etiquetas y
categorías tanto de los enlaces como de los posts (aunque no son
compartidas)
Nombres de las etiquetas y las categorías.
Información de los usuarios. En esta tabla se guardan el nombre de
usuario (nicename) el correo electrónico, la dirección web que este
especifique, la fecha de registro, la clave de activación (que se envía
para comprobar la dirección de correo electrónico de los nuevos
usuarios) y el nombre que debe mostrarse
Opciones de los usuarios. Aquí se guarda el resto de información del
usuario, como su nombre real, el tipo de editor que usa, su nivel...
Tabla de opciones de WordPress

2

wp_postmeta

wp_comments

wp_commentsmeta

wp_term_taxonomy

wp_terms
wp_users

wp_usersmeta

wp_options

Mosaic, junio de 2012

Imagen 1.
Diagrama de la base de datos de WordPress. Disponible en http://codex.wordpress.org/Database_Description
En la Imagen 1 podemos ver todas las tablas de la base de datos de WordPress y las relaciones entre
ellas.
Como es normal, la base de datos parece centrada en la tabla de entradas. Tan solo la tabla de
opciones no mantiene ninguna relación con wp_posts.
Un detalle importante es que a pesar de que en la imagen el nombre de todas las tablas empieza por
wp_ esto no siempre es así. WordPress permite cambiar el prefijo de las tablas para facilitar la
convivencia de diferentes instalaciones del gestor de contenidos en una misma base de datos. Existe
una clase global, llamada $wpbp que nos facilita el acceso a las tablas independientemente del
prefijo que se le haya puesto al nombre.

3

Mosaic, junio de 2012

Las tablas una a una

wp_posts
Es la tabla con más campos y de más peso en la mayoría de instalaciones de WordPress. En Mosaic
(http://mosaic.uoc.edu) en el momento de escribir este texto wp_posts tenía 7924 filas que
ocupaban un total de 60 Mb. Para hacernos una idea, la siguiente tabla en peso, es la
wp_term_relationships con 436 Kb y 7455 filas. En wp_posts se guardan las entradas (posts), las
páginas, todas las revisiones que se hacen de ambos tipos de contenidos y la información
relacionada con todos los archivos que se suben.

Contenido complementario

Si se desea se puede desactivar la opción de mantener las revisiones añadiendo la
siguiente línea en el archivo wp-config.php:

define('WP_POST_REVISIONS', false);

Los campos que contiene dicha tabla son:

Campo

ID
post_author
post_date

Tipo
BIGINT(20)
BIGINT(20)
DATETIME

post_date_gmt

DATETIME

post_content
post_title
post_excerpt
post_status
comment_status
ping_status
post_password

Descripción

Identificador.
Autor. Relaciona la tabla wp_posts con la tabla wp_users.
Fecha y hora de creación de la entrada/página en el
horario local.
Fecha y hora de creación de la entrada/página en horario
gmt.
El contenido de la entrada o página
El título de la entrada o página
Extracto

LONGTEXT
TEXT
TEXT
VARCHAR(20) Situación del post: Publicado, pendiente, privado,...
VARCHAR(20) Estado de los comentarios. open/closed (se aceptan o no)
VARCHAR(20) Situación de los pings1. open/closed
VARCHAR(20) Si se asigna una contraseña a una entrada, esta sólo puede
ser leída si se introduce dicha contraseña. Si su estado es
publish aparecerá el título pero solicitará el password
para poderla leer. La contraseña se guarda en la base de
datos sin encriptar.

post_name

VARCHAR(200) Nombre de la entrada. Si está publicada coincide con el
título. Si es una revisión o un autoguardado recibe como

1 Suele ser habitual hacer saber a un blog que ha sido referenciado desde otro. Los gestores de blogs suelen pasar esa

información de manera automática. Es lo que se conoce como ping.

4

Mosaic, junio de 2012

to_ping

pinged

TEXT

TEXT

post_modified

DATETIME

post_modified_gmt DATETIME
post_content_filtered TEXT

post_parent

BIGINT(20)

nombre el ID de la entrada, la palabra revision o
autosave y el número de revisión (si hay más de una)
Si desde esta entrada se hace un ping a otra página, queda
reflejado aquí.
Si esta entrada ha recibido un ping desde otra página,
queda reflejado aquí.
Fecha de la última modificación de la entrada o página en
horario local.
Idem que la anterior pero en formato GMT
No usado directamente por WordPress, usado por algunos
plugins que modifican el contenido del post, para no
tener que hacer la modificación cada vez que se muestra
la entrada.
En caso de que sea una revisión se refiere al ID del post
revisado. En caso de que sea un adjunto será el ID del
post en que se subió. En caso de que sea una página o un
ítem de menú, la página o el ítem de menú padre.

guid

VARCHAR(255) La dirección del post o del archivo (si se trata de un

menu_order

INT(11)

adjunto)
Se usa en los ficheros aduntos para mantener un orden
entre ellos. También se usa para listar las páginas en un
orden diferente al alfabético, que es el que usa WordPress
por defecto.

post_type

post_mime_type

VARCHAR(20) Clase de contenido almacenado (attachment, page, post,

revision, nav_menu_item)

VARCHAR(100) T
  • Links de descarga
http://lwp-l.com/pdf2628

Comentarios de: VisDa: La base de datos de WordPress (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios
Es necesario revisar y aceptar las políticas de privacidad