WordPress后台用户列表默认是按名称来排序的,这样我们查看最近注册的用户就很不方便,那么如何按注册时间来排序呢?

将下面代码加到主题的functions.php里:

add_filter( \'manage_users_sortable_columns\', \'erphpdown_modify_user_table_row_sortable\' );
function erphpdown_modify_user_table_row_sortable( $columns ) {
return wp_parse_args( array( \'reg\' => \'registered\' ), $columns );
}

function erphpdown_modify_user_table( $column ) {
$column[\'reg\'] = \'注册时间\';
return $column;
}
add_filter( \'manage_users_columns\', \'erphpdown_modify_user_table\' );

function erphpdown_modify_user_table_row( $val, $column_name, $user_id ) {
switch ($column_name) {
case \'reg\':
$user = get_user_by(\"ID\",$user_id);
return get_date_from_gmt($user->user_registered);
break;
}
return $val;
}
add_filter( \'manage_users_custom_column\', \'erphpdown_modify_user_table_row\', 10, 3 );

add_action( \'pre_user_query\', \'erphpdown_users_search_order\' ); 
function erphpdown_users_search_order($obj){ 
if(!isset($_REQUEST[\'orderby\']) || $_REQUEST[\'orderby\']==\'reg\' ){ 
if( !in_array($_REQUEST[\'order\'],array(\'asc\',\'desc\')) ){ 
$_REQUEST[\'order\'] = \'desc\'; 
} 
$obj->query_orderby = \"ORDER BY user_registered \".$_REQUEST[\'order\'].\"\"; 
} 
}

发表回复

您的电子邮箱地址不会被公开。