我正在尝试按特定的帖子类型顺序查询列表,但它不起作用。
$args = array(
'post_type' => array('a','b', 'c', 'd', 'e'),
'tax_query' => array(
array(
'taxonomy' => 'category',
'field' => 'slug',
'terms' => ''.$term_list.''
),
),
'orderby' => 'type'
);
怎么了? 它适用于"Rand"和其他查询字符串,但"类型"似乎还不够!
谢谢!
我工作的唯一方法是过滤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' );
听起来像是自定义帖子类型的单一视图。你可以做这样的事情:
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' );
这将进入您的函数.php文件中。您必须通过函数获取数据.php对于 $term_list 变量。在单个.php文件中,您可以放置默认循环。