WordPress后台用户列表显示用户注册时间并排序

前言

WordPress 后台的用户列表界面,用户是按照用户名排序的,并且没有显示注册时间,如果我们希望能够在后台看到用户的注册时间,并且按照注册时间排序,可以通过下面的步骤实现

教程

在主题的function.php 中添加如下代码,CoreNext主题添加到子主题的function.php 中。

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']."";
	}
});

上面的代码在默认的情况下,或者用户点击「用户注册」列,都按照「用户注册」进行排序。

阅读剩余
THE END