tax_query în get_posts() nu funcționează?

11 apr. 2013, 11:30:53
Vizualizări: 38.6K
Voturi: 9

Î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.

0
Toate răspunsurile la întrebare 1
3
25

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ă.

11 apr. 2013 11:39:32
Comentarii

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

qwerty qwerty
11 apr. 2013 12:30:07

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.

piotao piotao
8 nov. 2018 15:48:56

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

Tomas Eklund Tomas Eklund
23 mar. 2020 18:00:12