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

时间:2016-09-12 15:02:49

标签: 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,
                        ),
                    )
);

1 个答案:

答案 0 :(得分:0)

我找到了解决方案。

$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,
                        ),
                    )
);