我正在创建具有属性的快捷代码,除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"是自定义分类法的名称。请指导我为什么此查询没有根据事件类别获取事件。
任何帮助都将不胜感激。
感谢
使用tax_query,如下所示:我假设$event_category中只提供了一个类别段塞。如果该变量中有多个类别段塞,请尝试将其转换为数组,并用数组替换整个数组($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);
请参阅http://codex.wordpress.org/Class_Reference/WP_Query#Taxonomy_Parameters关于如何在查询中查询自定义分类法。
WP_Query函数不将'event_listing_category'
理解为一个参数,您必须告诉wordpress它是您想要的自定义分类法。