tax_query în get_posts() nu funcționează?
Încerc să afișez toate postările din fiecare taxonomie pentru un tip de postare personalizat numit product
(produse jigoshop). Așa că obțin toate taxonomiile folosind $cats = get_terms('product_cat');
, apoi le parcurg pe toate și încerc să obțin toate postările din taxonomie. Problema este că nu funcționează. Nu returnează nimic!
$uposts = get_posts(array(
'post_type' => 'product',
'numberposts' => -1,
'tax_query' => array(
'taxonomy' => $cat->taxonomy,
'field' => 'slug',
'terms' => array($cat->slug),
'operator' => 'IN'
)
));
Dacă schimb 'terms' => array($cat->slug)
în 'terms' => $cat->slug
returnează toate postările, ca și cum ar ignora complet tax_query.
Aveți idee ce cauzează această eroare? Am încercat să mă joc cu operator
, să schimb field
în ID (și să trimit $cat->ID
ca termen)... nimic nu funcționează!
$cat are următoarele valori:
stdClass Object
(
[term_id] => 114
[name] => Categorie test nouă
[slug] => ny-testkategori
[term_group] => 0
[term_taxonomy_id] => 115
[taxonomy] => product_cat
[description] =>
[parent] => 0
[count] => 2
[meta_id] => 3
[jigoshop_term_id] => 114
[meta_key] => order
[meta_value] => 1
)
Deci $cat->slug și $cat->taxonomy sunt valori valide.
Tax_query necesită un array de array-uri cu argumente pentru interogarea taxonomiilor (primește un array de array-uri), dar tu folosești doar un singur array. Codul corect este următorul.
$uposts = get_posts(
array(
'post_type' => 'product',
'numberposts' => -1,
'tax_query' => array(
array(
'taxonomy' => $cat->taxonomy,
'field' => 'slug',
'terms' => array($cat->slug),
'operator' => 'IN',
)
)
)
);
Pentru mai multe informații vizitează această pagină.

Oh, desigur! Ce prost am fost, am petrecut peste o oră încercând să repar asta. Mulțumesc mult!

norocosule tu, eu am petrecut trei zile pe asta :( Există cumva vreun feedback care să arate câte postări sunt preluate sau mai degrabă DE CE nu sunt găsite? O grămadă de tutoriale și exemple, chiar și aici sunt despre versiuni mai vechi sau nu au funcționat pentru mine oricum.

URL-ul documentației s-a schimbat. Documentația pentru WP_Query Taxonomy Parameters se găsește acum aici: https://developer.wordpress.org/reference/classes/wp_query/#taxonomy-parameters
