Dans woocommerce, je veux un produit par marque (ORDER BY A-Z) avec une taxonomie spécifique. J'ai deux taxonomies product_cat et product_brand. J'ai fait du code pour atteindre mes objectifs, mais le problème est que je dois appeler WP_Query encore et encore. Le code que j'ai essayé: -
$args = array(
'orderby' => 'name',
'order' => 'ASC'
);
$terms_brand=get_terms('product_brand',$args);
foreach($terms_brand as $term_b){
$args = array(
'post_type' => 'product',
'tax_query' => array(
array(
'taxonomy' => 'product_cat',
'field' => 'term_id',
'terms' => $term->term_id,
)
),
'product_brand' => $term_b->slug
);
$query=query_posts($args);
while(have_posts()){
the_post();
$terms = get_the_terms( get_the_ID(), 'product_brand' );
echo the_title_attribute().' --- '.$terms[0]->name.'<br/>';
}
}
Comment pourrais-je rendre possible de ne pas exécuter WP_Query
de manière continue.
Vous êtes proche, la syntaxe est juste légèrement différente. Je ne peux pas vraiment comprendre comment/quels termes vous devez interroger, mais ceci devrait être la structure de vos arguments:
$query = new WP_Query(
array(
'post_type' => 'product',
'orderby' => 'name',
'order' => 'ASC',
'tax_query' => array(
array(
'taxonomy' => 'product_cat',
'field' => 'term_id',
'terms' => $ids_of_product_cat_terms,
),
array(
'taxonomy' => 'product_brand',
'field' => 'term_id',
'terms' => $ids_of_product_brand_terms,
),
),
)
);
Lisez sur les requêtes fiscales du codex .