在 WooCommerce 中使用 AND 关系对 2 个类别术语进行税务查询
Tax query using AND relation for 2 category terms in WooCommerce
我想得到我所有的产品,在类别 A + B 中,我用 tax_query 尝试过,但直到现在我没有得到预期的结果。
$args = array(
'posts_per_page' => -1,
'post_type' => 'product',
'tax_query' => array(
'relation' => 'AND',
array(
'taxonomy' => 'product_cat',
'field' => 'term_id',
'terms' => $_GET["terms"],
)
),
);
通过该查询,我得到了 A 或 B 中的产品...
已更新
假设url参数传递有点像?terms[0]=15&terms[1]=22
(其中15
和22
是术语Id), 所以 $_GET["terms"]
给出了一个术语 ID 数组,那么你将使用以下内容:
$tax_query = array(); // Initializing
if( isset($_GET['terms']) && is_array($_GET['terms']) ) {
$terms_ids = wc_clean($_GET['terms']);
$tax_query = count($terms_ids) > 1 ? array('relation' => 'AND') : array();
// Loop through terms Ids
foreach( $terms_ids as $term_id ) {
$tax_query[] = array(
'taxonomy' => 'product_cat',
'field' => 'term_id',
'terms' => $term_id,
);
}
}
$args = array(
'posts_per_page' => -1,
'post_type' => 'product',
'post_status' => 'publish',
'tax_query' => $tax_query
);
已测试并有效。
我想得到我所有的产品,在类别 A + B 中,我用 tax_query 尝试过,但直到现在我没有得到预期的结果。
$args = array(
'posts_per_page' => -1,
'post_type' => 'product',
'tax_query' => array(
'relation' => 'AND',
array(
'taxonomy' => 'product_cat',
'field' => 'term_id',
'terms' => $_GET["terms"],
)
),
);
通过该查询,我得到了 A 或 B 中的产品...
已更新
假设url参数传递有点像?terms[0]=15&terms[1]=22
(其中15
和22
是术语Id), 所以 $_GET["terms"]
给出了一个术语 ID 数组,那么你将使用以下内容:
$tax_query = array(); // Initializing
if( isset($_GET['terms']) && is_array($_GET['terms']) ) {
$terms_ids = wc_clean($_GET['terms']);
$tax_query = count($terms_ids) > 1 ? array('relation' => 'AND') : array();
// Loop through terms Ids
foreach( $terms_ids as $term_id ) {
$tax_query[] = array(
'taxonomy' => 'product_cat',
'field' => 'term_id',
'terms' => $term_id,
);
}
}
$args = array(
'posts_per_page' => -1,
'post_type' => 'product',
'post_status' => 'publish',
'tax_query' => $tax_query
);
已测试并有效。