我正在尝试用AJAX创建过滤不同分类类别的过滤器。每个分类法都有一个过滤器列表框。过滤器是工作,如果所有的列表框被选中,但我需要找到方法,如何过滤类别,如果一些过滤器没有被选中。如何查询类别与空值?我有4个列表框,代码缩短了。
代码:$komanda = $_POST['komanda'];
$pretinieks = $_POST['pretinieks'];
if ($komanda == 0){ $komanda = '?'; }
if ($pretinieks == 0){ $pretinieks = '?'; }
$args = array(
'post_type' => 'speles',
'posts_per_page' => 99,
'post_status' => array('publish'),
'tax_query' => array(
'relation' => 'AND',
array(
'taxonomy' => 'komandas',
'field' => 'term_id',
'terms' => $komanda,
),
array(
'taxonomy' => 'pretinieki',
'field' => 'term_id',
'terms' => $pretinieks,
),
)
);
我找到解决办法了。
$komanda = $_POST['komanda'];
$pretinieks = $_POST['pretinieks'];
if ($komanda == 0){
$terms = get_terms( 'komandas', 'orderby=count&hide_empty=1' );
$komanda = array();
$komanda = wp_list_pluck($terms, 'term_id');
}
if ($pretinieks == 0){
$terms = get_terms( 'pretinieki', 'orderby=count&hide_empty=1' );
$pretinieks = array();
$pretinieks = wp_list_pluck($terms, 'term_id');
}
$args = array(
'post_type' => 'speles',
'posts_per_page' => 99,
'post_status' => array('publish'),
'tax_query' => array(
'relation' => 'AND',
array(
'taxonomy' => 'komandas',
'field' => 'term_id',
'terms' => $komanda,
),
array(
'taxonomy' => 'pretinieki',
'field' => 'term_id',
'terms' => $pretinieks,
),
)
);