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