SQL - Estrai prodotti di una categoria specifica da un database WordPress WooCommerce remoto

23 lug 2014, 06:47:26
Visualizzazioni: 16.2K
Voti: 0

Mi sono connesso al database e ho estratto con successo i dati dei prodotti. Ora voglio visualizzare i prodotti di una categoria specifica. Il negozio utilizza WooCommerce. La landing page si trova in una posizione diversa quindi non posso importare le funzioni di WordPress.

Ecco cosa ho ottenuto finora:

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

Non succede nulla. Se rimuovo AND rs.term_taxonomy_id = 117 funziona come prima. Appaiono i 5 prodotti più vecchi, non i prodotti della categoria specifica. Cosa mi manca?

0
Tutte le risposte alla domanda 2
3

Ho verificato la tua query e funziona correttamente senza errori o risultati vuoti. Tuttavia, se rimuovi l'INNER JOIN dalla tabella wp_terms continua a funzionare perché non stai recuperando alcun dato da quella tabella e non viene utilizzata neanche nella clausola 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 di post impostato a post per il mio esempio
AND  `post_status` =  "publish"
AND rs.term_taxonomy_id  = 1 //term_taxanomy_id è 1 per il mio esempio

ORDER BY post_date DESC LIMIT 5
23 lug 2014 15:00:48
Commenti

Per gli articoli funziona bene. Ma per i prodotti no. I prodotti hanno la tassonomia product_cat. Quando eseguo questo ottengo "MySQL ha restituito un set di risultati vuoto (cioè zero righe)." Ma ho prodotti in quella categoria.

john254 john254
23 lug 2014 18:15:59

ok controllerò. :)

ksr89 ksr89
24 lug 2014 07:37:18

@john254 esegui questa query nel tuo mysql e controlla se c'è qualche risultato.

ksr89 ksr89
24 lug 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(IL_TUO_ID_CATEGORIA_O_ID_MULTIPLI_SEPARATI_DA_VIRGOLA ) AND
                        term_taxonomy_id IN(
                                            SELECT 
                                                term_taxonomy_id 
                                            FROM 
                                                term_taxonomy 
                                            WHERE 
                                                taxonomy='product_cat' )
                                           )
18 dic 2014 19:53:46
Commenti

Per favore, ripulisci il tuo codice e crea una richiesta di [modifica] spiegando cosa fa il tuo codice e come funziona

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