一聚教程网:一个值得你收藏的教程网站

最新下载

热门教程

wordpress后台用户列表添加注册时间同时可注册时间排序2个方法

时间:2014-10-31 编辑:简简单单 来源:一聚教程网

方法一

wordpress的后台,所有用户默认是按照用户名排序的,并且没有显示用户的注册时间,那么我们希望看到用户注册时间并且可以按照用户的注册时间进行升序或者是降序排序,接下来将介绍实现方法,感兴趣的你可以参考下哈,希望可以帮助到你。
首先我们在用户列表的页面添加一列注册事件

 代码如下 复制代码
add_filter( 'manage_users_columns', 'my_users_columns' );
function my_users_columns( $columns ){
    $columns[ 'registered' ] = '注册时间';
    return $columns;
}
然后通过manage_users_custom_column钩子返回值
add_action( 'manage_users_custom_column', 'output_my_users_columns', 10, 3 );
function  output_my_users_columns( $var, $column_name, $user_id ){
    switch( $column_name ) {
        case "last_activity" :
            return get_user_meta($user_id, 'last_activity', true);
        case "registered" :
            return get_user_by('id', $user_id)->data->user_registered;
        case "sex" :
            return get_user_meta($user_id, 'sex', true);
        case "occ" :
            return get_user_meta($user_id, 'occ', true);
        case "qq" :
            return get_user_meta($user_id, 'qq', true);
            break;
    }
}
让我们添加的这个“注册时间”可以点击,也就是添加链接并且右边有一个小箭头
add_filter( "manage_users_sortable_columns", 'wenshuo_users_sortable_columns' );
function wenshuo_users_sortable_columns($sortable_columns){
    $sortable_columns['registered'] = 'registered';
    return $sortable_columns;
}
最后,我们根据浏览器的url,重新设置wordpress的查询函数
add_action( 'pre_user_query', 'wenshuo_users_search_order' );
function wenshuo_users_search_order($obj){
    if(!isset($_REQUEST['orderby']) || $_REQUEST['orderby']=='registered' ){
        if( !in_array($_REQUEST['order'],array('asc','desc')) ){
            $_REQUEST['order'] = 'desc';
        }
        $obj->query_orderby = "ORDER BY user_registered ".$_REQUEST['order']."";
    }
}

以上就是wordpress后台用户列表添加注册时间以及按注册时间排序的全部代码,将以上代码添加都主题的 functions.php 文件中即可

方法二

 代码如下 复制代码

add_filter('manage_users_columns','wpjam_add_users_column_reg_time');
function wpjam_add_users_column_reg_time($column_headers){
$column_headers['reg_time'] = '注册时间';
return $column_headers;
}
add_filter('manage_users_custom_column', 'wpjam_show_users_column_reg_time',11,3);
function wpjam_show_users_column_reg_time($value, $column_name, $user_id){
if($column_name=='reg_time'){
$user = get_userdata($user_id);
return get_date_from_gmt($user->user_registered);
}else{
return $value;
}
}
add_filter( "manage_users_sortable_columns", 'wpjam_users_sortable_columns' );
function ys_users_sortable_columns($sortable_columns){
$sortable_columns['reg_time'] = 'reg_time';
return $sortable_columns;
}
add_action( 'pre_user_query', 'wpjam_users_search_order' );
function wpjam_users_search_order($obj){
if(!isset($_REQUEST['orderby']) || $_REQUEST['orderby']=='reg_time' ){
if( !in_array($_REQUEST['order'],array('asc','desc')) ){
$_REQUEST['order'] = 'desc';
}
$obj->query_orderby = "ORDER BY user_registered ".$_REQUEST['order']."";
}
}

将上面的保存为一个插件,上传激活之后,就可以在用户界面看到注册时间,并且按照注册时间排序了

wordpress后台用户列表添加注册时间同时可注册时间排序2个方法

热门栏目