web-dev-qa-db-fra.com

tax_query dans get_posts () ne fonctionne pas?

J'essaie d'imprimer tous les articles de chaque taxonomie pour un type d'article personnalisé appelé product (produits jigoshop). Donc, je reçois toutes les taxonomies en utilisant $cats = get_terms('product_cat');, puis je les parcoure toutes et tous les articles qui font partie de la taxonomie. Le problème est que cela ne fonctionne pas. Ça revient juste en blanc!

$uposts = get_posts(array(
    'post_type' => 'product',
    'numberposts' => -1,
    'tax_query' => array(
        'taxonomy' => $cat->taxonomy,
        'field' => 'slug',
        'terms' => array($cat->slug),
        'operator' => 'IN'
    )
));

Si je change la 'terms' => array($cat->slug) en 'terms' => $cat->slug, elle retourne all posts, comme si elle ignorait complètement le tax_query.

Des idées qui font que cela échoue? J'ai essayé de jouer avec operator, en changeant field en ID (et en envoyant aussi $cat->ID comme terme) ... rien ne fonctionne!

$ cat a les valeurs suivantes:

stdClass Object
(
    [term_id] => 114
    [name] => Ny testkategori
    [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
)

Donc, $ cat-> slug et $ cat-> taxonomie sont des valeurs valides.

7
qwerty

tax_query prend un tableau de tableaux d'arguments de requête de taxe (il faut un tableau de tableaux), mais vous n'utilisez qu'un seul tableau. Le code correct est le suivant.

$uposts = get_posts(
    array(
        'post_type' => 'product',
        'numberposts' => -1,
        'tax_query' => array(
            array(
                'taxonomy' => $cat->taxonomy,
                'field' => 'slug',
                'terms' => array($cat->slug),
                'operator' => 'IN',
            )
         )
    )
);

Pour plus d'informations, visitez cette page .

16
Vinod Dalvi