使用meta vaue orderby

时间:2017-11-06 10:36:55

标签: php wordpress

我有2个自定义元字段的用户。 Vip(0或1)和喜欢(数字) 我需要通过Vip和喜欢查询用户订购的用户,所以我首先需要的是vip用户,而不是喜欢用户的用户。 我有这样的代码

$meta_query = array(
    'relation' => 'OR',                            

    'vip_clause' => array( 
        'key'=> 'vip',
        'compare' => 'EXISTS'   ,       
        'type' => 'NUMERIC'  ,                                                                    
    ),

    'like_clause' =>  array( 
        'key'=> 'al_likes',
         'type' => 'NUMERIC',
         'compare' => 'EXISTS'   ,                                        
    ),
    array( 
        'key'=> 'vip',
         'compare' => 'NOT EXISTS'   ,
    ), 
    array( 
        'key'=> 'al_likes',
        'compare' => 'NOT EXISTS'   ,                                  
    ),
);

$args = array(
    'meta_query' => $meta_query,                  
    'orderby'  => array(    
    'like_clause' => 'DESC',    
    'vip_clause' => 'DESC'
   )    
); 

$users =  new WP_User_Query ( $args );

结果我得到了Vip(他们先订购)但不喜欢的用户列表。我该如何解决?谢谢

1 个答案:

答案 0 :(得分:0)

" orderby" WP_User_Query的参数不支持数组值。我猜你从WP_QUERY中获取了样本,这是用于POST数据的。 尝试使用简单的逗号分隔字符串,而不是数组。 WP_USER_QUERY可以识别它。

$args = array(
    'meta_query' => $meta_query,  
     'order'      => 'DESC,DESC',
     'orderby'    => 'like_clause,vip_clause',                                   
);