我正在尝试查询特定帖子类型订单中的列表,但它不起作用。
$args = array(
'post_type' => array('a','b', 'c', 'd', 'e'),
'tax_query' => array(
array(
'taxonomy' => 'category',
'field' => 'slug',
'terms' => ''.$term_list.''
),
),
'orderby' => 'type'
);
怎么了? 谢谢!
答案 0 :(得分:1)
我实现此功能的唯一方法是过滤pre_get_posts。我没有挖掘核心以真正看到设置的内容,但过滤器确实有效。
function my_search_filter( $query ) {
if( $query->is_search() ) {
$query->set( 'post_type', array('post', 'page','case-study','office', 'career', 'event') );
$query->set( 'orderby', 'type');
}
}
add_filter( 'pre_get_posts', 'my_search_filter' );
答案 1 :(得分:0)
听起来它是自定义帖子类型的单一视图。你可以这样做:
function my_single_filter( $query ) {
if( $query->is_singular('custom_post_type_slug') ) {
$query->set( 'post_type', array('a','b','c','d','e') );
$query->set( 'orderby', array(
array( 'taxonomy' => 'category',
'field' => 'slug',
'terms' => ''.$term_list.'' ),
));
$query->set( 'orderby', 'type');
}
}
add_filter( 'pre_get_posts', 'my_single_filter' );
这将放在你的functions.php文件中。您必须通过functions.php获取$ term_list变量的数据。在single.php文件中,您可以放置默认循环。