排序带有多个“ orderby”的wp_query?

时间:2019-08-24 13:23:48

标签: wordpress

我正在尝试对具有多个'orderby'变量的wp_query进行排序。
我的目标是在下面的显示中包含2个orderby变量-按组排序,然后按评分...

导师1(第1组)(5星)
导师2(第1组)(4星)
导师3(第2组)(5星)
导师4(第2组)(4星)
导师5(第2组)(3星)

我尝试了很多事情,包括meta_query数组,但是还没有成功。

代码如下:

if ($_GET['orderby'] == 'ownership') { 
    $query->set('post_type', 'tutor');  
    $query->set('meta_key', 'ownership');
    $query->set('orderby', 'meta_value');
    $query->set('order', 'ASC');
    $query->set('meta_key', 'tutor_plugin_rating'); 
    $query->set('orderby', 'meta_value'); 
    $query->set('order', 'DESC');
简而言之,我还没有弄清楚如何在同一查询中按“所有权”然后按“ tutor_plugin_rating”进行排序。谁能指导我?

1 个答案:

答案 0 :(得分:0)

想通了...

    $meta_query = array(
                      array(
                        'ownership_clause' => array(
                          'key' => 'ownership',
                          'compare' => 'EXISTS'
                        )
                      ),
                      array(
                        'rating_clause' => array(
                          'key' => 'tutor_plugin_rating',
                          'compare' => 'EXISTS'
                        )
                      )
                    );
$query->set('meta_query', $meta_query);
$query->set('orderby', array('ownership_clause' => 'ASC', 'rating_clause' => 'DESC'));