Wordpress自定义分类法类别过滤器,默认值获取所有类别



我正在尝试用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,
                        ),
                    )
);

最新更新