当前位置:首页 > CMS教程 > WordPress > 列表

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

发布:smiling 来源: PHP粉丝网  添加日期:2014-11-21 13:34:44 浏览: 评论:0 

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

wp后面是没有显示注册时间与排序这个功能了,是按用户名排序了,下面我们一起来看2个实现后台用户列表添加注册时间同时可注册时间排序2个方法.

方法一

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

首先我们在用户列表的页面添加一列注册事件,代码如下:

  1. add_filter( 'manage_users_columns''my_users_columns' ); 
  2. function my_users_columns( $columns ){ 
  3.     $columns'registered' ] = '注册时间'
  4.     return $columns

然后通过manage_users_custom_column钩子返回值:

  1. add_action( 'manage_users_custom_column''output_my_users_columns', 10, 3 ); 
  2. function  output_my_users_columns( $var$column_name$user_id ){ 
  3.     switch$column_name ) { 
  4.         case "last_activity" : 
  5.             return get_user_meta($user_id'last_activity', true); 
  6.         case "registered" : 
  7.             return get_user_by('id'$user_id)->data->user_registered; 
  8.         case "sex" : 
  9.             return get_user_meta($user_id'sex', true); 
  10.         case "occ" : 
  11.             return get_user_meta($user_id'occ', true); 
  12.         case "qq" ://开源软件:phpfensi.com 
  13.             return get_user_meta($user_id'qq', true); 
  14.             break
  15.     } 

让我们添加的这个“注册时间”可以点击,也就是添加链接并且右边有一个小箭头.

  1. add_filter( "manage_users_sortable_columns"'wenshuo_users_sortable_columns' ); 
  2. function wenshuo_users_sortable_columns($sortable_columns){ 
  3.     $sortable_columns['registered'] = 'registered'
  4.     return $sortable_columns

最后,我们根据浏览器的url,重新设置wordpress的查询函数.

  1. add_action( 'pre_user_query''wenshuo_users_search_order' ); 
  2. function wenshuo_users_search_order($obj){ 
  3.     if(!isset($_REQUEST['orderby']) || $_REQUEST['orderby']=='registered' ){ 
  4.         if( !in_array($_REQUEST['order'],array('asc','desc')) ){ 
  5.             $_REQUEST['order'] = 'desc'
  6.         } 
  7.         $obj->query_orderby = "ORDER BY user_registered ".$_REQUEST['order'].""
  8.     } 

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

方法二,代码如下:

  1. <?php  
  2. add_filter('manage_users_columns','wpjam_add_users_column_reg_time');  
  3. function wpjam_add_users_column_reg_time($column_headers){  
  4. $column_headers['reg_time'] = '注册时间';  
  5. return $column_headers;  
  6. }  
  7. add_filter('manage_users_custom_column''wpjam_show_users_column_reg_time',11,3);  
  8. function wpjam_show_users_column_reg_time($value$column_name$user_id){  
  9. if($column_name=='reg_time'){  
  10. $user = get_userdata($user_id);  
  11. return get_date_from_gmt($user->user_registered);  
  12. }else{  
  13. return $value;  
  14. }  
  15. }  
  16. add_filter( "manage_users_sortable_columns"'wpjam_users_sortable_columns' );  
  17. function ys_users_sortable_columns($sortable_columns){  
  18. $sortable_columns['reg_time'] = 'reg_time';  
  19. return $sortable_columns;  
  20. }  
  21. add_action( 'pre_user_query''wpjam_users_search_order' );  
  22. function wpjam_users_search_order($obj){  
  23. if(!isset($_REQUEST['orderby']) || $_REQUEST['orderby']=='reg_time' ){  
  24. if( !in_array($_REQUEST['order'],array('asc','desc')) ){  
  25. $_REQUEST['order'] = 'desc';  
  26. }  
  27. $obj->query_orderby = "ORDER BY user_registered ".$_REQUEST['order']."";  
  28. }  

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

Tags: wordpress时间排序 wordpress注册

分享到: