SQL - Extraer productos de una categoría específica desde una base de datos remota de WordPress WooCommerce

23 jul 2014, 06:47:26
Vistas: 16.2K
Votos: 0

Me conecté a la base de datos y extraje con éxito los datos de productos. Ahora quiero mostrar productos de una categoría específica. La tienda usa WooCommerce. La página de destino está en una ubicación diferente, por lo que no puedo importar funciones de WordPress.

Esto es lo que tengo hasta ahora:

SELECT ID, `post_date`, `post_title`, `post_content`, `guid` FROM `wp_posts` as post

INNER JOIN wp_term_relationships rs ON rs.object_id = post.ID 
INNER JOIN wp_terms t ON t.term_id = rs.term_taxonomy_id 

WHERE `post_type` = "product"  
AND `post_status` = "publish"     
AND rs.term_taxonomy_id = 117

ORDER BY post_date DESC LIMIT 5

No ocurre nada. Si elimino AND rs.term_taxonomy_id = 117 funciona como antes. Aparecen los 5 productos más antiguos, pero no los productos de la categoría específica. ¿Qué me estoy perdiendo aquí?

0
Todas las respuestas a la pregunta 2
3

Verifiqué tu consulta y está funcionando correctamente sin errores ni resultados vacíos. Pero además, si eliminas el INNER JOIN de la tabla wp_terms, también funciona porque no estás obteniendo nada de esa tabla y tampoco se utiliza en la cláusula WHERE.

SELECT ID, `post_date`, `post_title`, `post_content`, `guid` FROM `wp_posts` as post

INNER JOIN wp_term_relationships rs ON rs.object_id = post.ID 

WHERE `post_type` = "post" //tipo de post es 'post' para mi ejemplo
AND `post_status` = "publish"
AND rs.term_taxonomy_id = 1 //term_taxanomy_id es 1 para mi ejemplo

ORDER BY post_date DESC LIMIT 5
23 jul 2014 15:00:48
Comentarios

Para las publicaciones funciona bien. Pero para los productos no. Los productos tienen la taxonomía product_cat. Cuando ejecuto esto obtengo "MySQL devolvió un conjunto de resultados vacío (es decir, cero filas)". Pero tengo productos en esa categoría.

john254 john254
23 jul 2014 18:15:59

ok, lo revisaré. :)

ksr89 ksr89
24 jul 2014 07:37:18

@john254 ejecuta esta consulta en tu mysql y verifica si hay algún resultado.

ksr89 ksr89
24 jul 2014 08:13:13
1
-3
SELECT 
        `ID`, 
        `post_title`,
        `guid`      
FROM 
        posts 
WHERE 
        post_type='product' and 
        post_status='publish' and 
        ID IN(
                SELECT 
                        object_id 
                FROM 
                        term_relationships 
                WHERE 
                        term_taxonomy_id IN(TU_ID_DE_CATEGORIA_O_IDS_MULTIPLES_SEPARADOS_POR_COMA) and
                        term_taxonomy_id IN(
                                            SELECT 
                                                term_taxonomy_id 
                                            FROM 
                                                term_taxonomy 
                                            where 
                                                taxonomy='product_cat' )
                                           )
18 dic 2014 19:53:46
Comentarios

Por favor, limpia tu código y presenta una [edición] explicando qué hace tu código y cómo funciona

Pieter Goosen Pieter Goosen
18 dic 2014 19:55:03