WordPress - 按“类型”排序查询不起作用


wordpress - orderby query by "type" is not working?

我正在尝试按特定的帖子类型顺序查询列表,但它不起作用。

$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文件中,您可以放置默认循环。