En que tabla se almacenan las categorías de WordPress

Hace un par de meses necesitaba hacer algunas consulta de las entradas de un blog por categoría, al no encontrar mucha información al respecto publiqué el Diagrama de la Base de Datos de WordPress en mi blog, esta entrada es para complementar un poco el anterior post.

Las etiquetas y las categorías se guardan en la tabla wp_terms por lo que si necesitamos generar una lista de únicamente las categorías necesitamos hacer la siguiente consulta:

SELECT wp_terms.term_id, wp_terms.name, wp_terms.slug
FROM wp_term_taxonomy
LEFT OUTER JOIN wp_terms ON wp_terms.term_id = wp_term_taxonomy.term_id
WHERE (wp_term_taxonomy.taxonomy =  'category')

Una consulta más completa que nos regrese el id, nombre, descripción, slug y número de entradas de una categoría sería como la siguiente:

SELECT wp_terms.term_id, wp_terms.name, wp_terms.slug,
wp_term_taxonomy.taxonomy, wp_term_taxonomy.description, wp_term_taxonomy.count
FROM wp_term_taxonomy
LEFT OUTER JOIN wp_terms ON wp_terms.term_id = wp_term_taxonomy.term_id
WHERE (wp_term_taxonomy.taxonomy =  'category')
ORDER BY wp_terms.name

Finalmente para tener una lista de las entradas o post, con estatus de publicado, con su id, título, fecha, categoría y autor necesitamos hacer la siguiente consulta:

SELECT wp_posts.ID, wp_posts.post_title, wp_posts.post_date, wp_terms.name, wp_users.user_nicename
FROM wp_term_taxonomy
LEFT OUTER JOIN wp_terms ON wp_terms.term_id = wp_term_taxonomy.term_id
RIGHT OUTER JOIN wp_term_relationships ON wp_term_relationships.term_taxonomy_id = wp_term_taxonomy.term_taxonomy_id
RIGHT OUTER JOIN wp_posts ON wp_posts.ID = wp_term_relationships.object_id
LEFT OUTER JOIN wp_users ON wp_users.ID = wp_posts.post_author
WHERE (wp_term_taxonomy.taxonomy =  'category')
AND (wp_posts.post_type =  'post')
AND (wp_posts.post_status =  'publish')
ORDER BY wp_posts.post_date DESC

Esta última consulta tiene el detalle de que si una entrada pertenece a varias categorías generará un registro por cada una de las categorías a la que pertenezca.

He hecho algunas otras consultas un poco más elaboradas de la base de datos de WordPress así que las publicaré poco a poco en mi blog. Se aceptan las dudas y comentarios 🙂

About davidaustria

Desarrollador de aplicaciones de escritorio y web. Programa en el Hacker Room México soluciones con bases de datos y APIs Sociales.
This entry was posted in blog, WordPress. Bookmark the permalink.

Leave a Reply

Your email address will not be published. Required fields are marked *