web-dev-qa-db-fra.com

Recevez un message à partir d'un type de message personnalisé, commandé par deux taxonomies

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.

1
Jason

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 .

1
TheDeadMedic