Consultar posts por taxonomía personalizada en WordPress con wpdb
20 abr 2016, 11:58:14
Vistas: 14.3K
Votos: 6
Necesito obtener una lista de posts de un tipo específico (post_type) junto con el nombre de un término de una taxonomía personalizada.
Esto es lo que tengo hasta ahora:
SELECT p.post_name,t.name as clientName
FROM $wpdb->posts AS p, $wpdb->terms AS t
LEFT JOIN $wpdb->term_relationships AS tr ON ('p.ID' = tr.object_id)
LEFT JOIN $wpdb->term_taxonomy AS tt ON (tr.term_taxonomy_id = tt.term_taxonomy_id)
LEFT JOIN $wpdb->terms AS t2 ON (t2.term_id = tt.term_id)
WHERE p.post_status = 'publish'
AND p.post_type = 'portfolio'
AND tt.taxonomy = 'clients'
ORDER BY p.post_date DESC
¿Cuál es el problema? Estoy obteniendo demasiados resultados, obtengo los posts correctos, pero varias veces con cada cliente. Supongo que es porque estoy usando $wpdb->terms como t Y como t2? Pero cuando intento usarlo como t en ambos casos obtengo el error:
Not unique table/alias: 't'
¿Alguien puede ayudar?
Comentarios
Todas las respuestas a la pregunta
1
1
Chicos, disculpen, acabo de encontrar la solución:
SELECT p.post_name, t.name as clientName
FROM $wpdb->posts AS p
INNER JOIN $wpdb->term_relationships AS tr ON ( p.ID = tr.object_id)
INNER JOIN $wpdb->term_taxonomy AS tt ON (tr.term_taxonomy_id = tt.term_taxonomy_id)
INNER JOIN $wpdb->terms AS t ON (t.term_id = tt.term_id)
WHERE p.post_status = 'publish'
AND p.post_type = 'portfolio'
AND tt.taxonomy = 'clients'
ORDER BY p.post_date DESC
Simplemente no tengo que definir un alias para $wpdb->terms
en la cláusula FROM
.

Web-Entwickler
191
20 abr 2016 12:07:16
Preguntas relacionadas
3
respuestas
3
respuestas