获取所有wp_users按metakey排序

时间:2017-12-08 12:40:23

标签: wordpress sql-order-by meta-key

我试图通过metakey获取用户列表排序。我的意思是我已经设置了元键user_last_login。一些用户没有这个元键。有些用户拥有它。

我希望在单个查询中同时获得两个用户,但如果metakey存在,则会先出现,剩下的应该是最后一个。

这是我的查询

$meta_query_args = array(
            'relation' => 'OR', // Optional, defaults to "AND"
            array(
            'key'     => 'user_last_login',                 
            'compare' => 'Not Exists'
            ),
            array(
            'key'     => 'user_last_login',                 
            'compare' => 'Exists'
            )
        );
        $meta_query = new WP_Meta_Query( $meta_query_args );


            $args = array(
                'offset' => $paged ? ($paged - 1) * $number : 0,
                'number' => $number,
                'fields' => 'all',
                'orderby'=>'user_last_login',                   
                'exclude' => array(get_current_user_id()), 

                'meta_query'  =>$meta_query
            );

            $users = get_users( $args );

请帮忙。

1 个答案:

答案 0 :(得分:1)

如果您想按meta_key订购,则需要meta_value参数。这是修改后的代码,

$query_args = array(
    'relation' => 'OR',
    array(
        'key'     => 'user_last_login',                 
        'compare' => 'NOT EXISTS'
    ),
    array(
        'key'     => 'user_last_login',                 
        'compare' => 'EXISTS'
    )
);

$meta_query = new WP_Meta_Query($query_args);

$args = array(
    'offset' => $paged ? ($paged - 1) * $number : 0,
    'number' => $number,
    'fields' => 'all',
    'meta_key' => 'user_last_login',
    'orderby' => 'meta_value',
    'order' => 'ASC',                 
    'exclude' => array(get_current_user_id()), 
    'meta_query' => $meta_query
);

$users = get_users( $args );

希望这个有所帮助。