wordpress - orderby by" type"不管用?

时间:2014-12-10 17:11:18

标签: php wordpress sql-order-by wp-query custom-type

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

$args = array(              
                'post_type' => array('a','b', 'c', 'd', 'e'),
                'tax_query' => array(
                        array(
                            'taxonomy' => 'category',
                            'field' => 'slug',
                            'terms' =>  ''.$term_list.''
                            ),
                        ),
                'orderby' => 'type'

                );

怎么了?

谢谢!

2 个答案:

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