SQL - Extragerea produselor dintr-o anumită categorie dintr-o bază de date WordPress WooCommerce la distanță
M-am conectat la baza de date și am reușit să extrag datele despre produse. Acum vreau să afișez produse dintr-o categorie specifică. Magazinul folosește WooCommerce. Pagina de destinație este într-o locație diferită, așa că nu pot importa funcțiile WordPress.
Iată ce am reușit să fac până acum:
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
Nu se întâmplă nimic. Dacă elimin AND rs.term_taxonomy_id = 117
funcționează ca înainte. Apare cele mai vechi 5 produse, dar nu produsele din categoria specifică. Ce lipsește aici?

Am verificat interogarea ta și funcționează corect fără erori sau rezultate goale. În plus, dacă elimini INNER JOIN
din tabela wp_terms
, aceasta va funcționa de asemenea, deoarece nu obții nicio informație din acea tabelă și nu este utilizată nici în clauza 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" //tipul postării este post pentru exemplul meu
AND `post_status` = "publish"
AND rs.term_taxonomy_id = 1 //term_taxanomy_id este 1 pentru exemplul meu
ORDER BY post_date DESC LIMIT 5

Pentru postări funcționează bine. Dar pentru produse nu. Produsele au taxonomia product_cat. Când rulez aceasta primesc "MySQL a returnat un set de rezultate gol (adică zero rânduri)." Dar am produse în acea categorie.

SELECT
`ID`,
`post_title`,
`guid`
FROM
posts
WHERE
post_type='produs' AND
post_status='publicat' AND
ID IN(
SELECT
object_id
FROM
term_relationships
WHERE
term_taxonomy_id IN(ID_TAUA_CATEGORIE_SAU_ID_URI_MULTIPLE_SEPARATE_PRIN_VIRGULA) AND
term_taxonomy_id IN(
SELECT
term_taxonomy_id
FROM
term_taxonomy
WHERE
taxonomy='product_cat' )
)
