在 WordPress 后台的用户列表界面,用户是按照用户名排序的,并且没有显示注册时间,如果我们希望能够在后台看到用户的注册时间,并且按照注册时间排序,可以通过下面的步骤实现:
1. 在用户列表添加「注册时间」列:
add_filter('manage_users_columns', function($column_headers){
$column_headers['registered'] = '注册时间';
return $column_headers;
});
2. 显示用户的「注册时间」:
add_filter('manage_users_custom_column', function($value, $column_name, $user_id){
if($column_name=='registered'){
return get_date_from_gmt(get_userdata($user_id)->user_registered);
}else{
return $value;
}
},11,3);
3. 设置「注册时间」列可以排序:
add_filter('manage_users_sortable_columns', function($sortable_columns){
$sortable_columns['registered'] = 'registered';
return $sortable_columns;
});
4. 默认或者使用「注册时间」排序的处理:
add_action('pre_user_query', function($query){
if(!isset($_REQUEST['orderby']) || $_REQUEST['orderby']=='registered' ){
if( !in_array($_REQUEST['order'],array('asc','desc')) ){
$_REQUEST['order'] = 'desc';
}
$query->query_orderby = "ORDER BY user_registered ".$_REQUEST['order']."";
}
});
上面的代码在默认的情况下,或者用户点击「用户注册」列,都按照「用户注册」进行排序。最后的效果:
原创文章,作者:howkunet,如若转载,请注明出处:https://www.intoep.com/wp/63187.html