首页 > 解决方案 > Woocommerce 按类别获取所有产品变体

问题描述

我需要获取属于所选类别的所有 Woocommerce 产品变体。我试图这样查询:

$args = array(
    'post_type'     => 'product_variation',
    'post_status'   => array( 'private', 'publish' ),           
    'tax_query'     => array(
        'taxonomy' => 'product_cat',
        'field' => 'term_id',
        'terms' => $selected_category_id
    )   
);

$variations = get_posts( $args );

但是“tax_query”部分似乎被忽略了,无论里面提供什么,它都不影响查询。

任何想法如何做到这一点?

标签: wordpresswoocommercecategoriesvariations

解决方案


税务查询单

重要提示:tax_query 接受一个税查询参数数组的数组(接受一个数组数组)。此构造允许您通过使用第一个(外部)数组中的关系参数来查询多个分类法,以描述分类法数组之间的布尔关系。

我建议你使用new WP_QUERY()而不是get_posts()使用 WP_QUERY 你可以看到查询通过你的参数运行var_dump($variations->request);

$args = array(
    'post_type' => 'product_variation',
    'post_status' => array('private', 'publish'),
    'tax_query' => array(
        array(
            'taxonomy' => 'product_cat',
            'field' => 'term_id',
            'terms' => $selected_category_id
        )
    )
);

$variations = new WP_Query($args);
var_dump($variations->request); // dump SQL query 

推荐阅读