Como esto es parte de una mayor comprensión del diseño, lo describiré como un todo ... :)
En WP 4.5.3 todavía hay todas estas tablas (hablaré de ellas sin prefijo):
- publicaciones
- term_relationships
- term_taxonomía
- condiciones
El camino para obtener los nombres legibles de los términos de publicación los atraviesa todos.
publica
el identificador principal aquí es ID
: una identificación de una publicación (de cualquier tipo)
term_relationships
almacena pares de:
object_id
- puede ser posts.ID
(pero no tiene que serlo)
term_taxonomy_id
- esto NO es un id de un término (categoría) sino un id de RELACIÓN entre un término (categoría) y una taxonomía ("tipo de categoría")
term_taxonomía
el identificador principal aquí se term_taxonomy_id
describe arriba ^^
otras columnas importantes:
term_id
- una identificación de un término (categoría)
taxonomy
- almacena la taxonomía del término ("tipo de categoría")
Esto puede parecer divertido, pero la intención inicial era agregar la capacidad de los términos para tener más taxonomías (lo que en algunos casos puede tener sentido).
términos,
el identificador principal aquí es el term_id
- una identificación de una categoría,
otras columnas importantes aquí son:
name
- nombre de categoría legible, por ejemplo, "Géneros musicales"
slug
- la babosa de un término utilizable, por ejemplo, en URL
Por lo tanto, la brutal demostración de SQL para
obtener todas las publicaciones publicadas y todas sus categorías con los nombres de las categorías
podría verse así (agregue prefijos a las tablas cuando realice pruebas en su propio WP DB):
SELECT * FROM
posts #gets posts
LEFT JOIN
term_relationships #gets posts relationships to term_taxonomies
ON(posts.ID=term_relationships.object_id)
LEFT JOIN
term_taxonomy #gets term_ids
ON(term_relationships.term_taxonomy_id=term_taxonomy.term_taxonomy_id)
LEFT JOIN
terms #finally, gets terms' names
ON(term_taxonomy.term_id=terms.term_id)
WHERE (
(posts.post_status='publish')
#optionally you can filter by a certain post_type:
#AND
#(posts.post_type='some_post_type')
)
ORDER BY posts.ID ASC