WP_Query类别参数不起作用

时间:2016-04-14 09:47:29

标签: php wordpress-plugin

我正在创建包含属性和所有属性的短代码,除了event_category。 当我添加" event_category"属性不是按照添加的类别给出结果。

以下是我的短代码属性

    // Shortcode Default Array
            $default_shortcode_attrs = array(
                'type' => 'upcoming',
                'search' => 'true',
                'event_category' => '',
                'events_limit' => '-1',
            );

    extract(shortcode_atts($default_shortcode_attrs, $attr));

以下是查询参数

     $args = array(
                'posts_per_page' => -1,
                'post_type' => 'event_listing',
                'post_status' => 'publish',
                'event_listing_category'=> $event_category,
            );
     $query = new WP_Query($args);

" event_listing_category"是自定义分类的名称。请指导我为什么此查询不会根据其类别获取事件。

任何帮助将不胜感激。

谢谢

2 个答案:

答案 0 :(得分:2)

使用tax_query代替如下: 我假设你在$ event_category中只提供了一个类别slug。如果你在该变量中有多个类别slug,那么尝试将其转换为数组并用数组替换整个数组($ event_category)。

$args = array(
            'posts_per_page' => -1,
            'post_type' => 'event_listing',
            'post_status' => 'publish',
            'tax_query' => array(
                                array(
                            'taxonomy' => 'event_listing_category', 
                            'field' => 'slug', 
                            'terms' => array( $event_category)
                            )
                        )
        );
 $query = new WP_Query($args);

答案 1 :(得分:1)

有关如何在查询中查询自定义分类的信息,请参阅http://codex.wordpress.org/Class_Reference/WP_Query#Taxonomy_Parameters

WP_Query函数并不理解'event_listing_category'作为参数,你必须告诉wordpress它是你想要的自定义分类。