加入收藏 | 设为首页 | 会员中心 | 我要投稿 PHP编程网 - 黄冈站长网 (http://www.0713zz.com/)- 数据应用、建站、人体识别、智能机器人、语音技术!
当前位置: 首页 > 教程 > 正文

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

发布时间:2022-06-27 09:14:57 所属栏目:教程 来源:互联网
导读:wordpress后台用户列表添加注册时间同时可注册时间排序2个方法 wp后面是没有显示注册时间与排序这个功能了,是按用户名排序了,下面我们一起来看2个实现后台用户列表添加注册时间同时可注册时间排序2个方法. 方法一 在wordpress的后台,所有用户默认是按照用
  wordpress后台用户列表添加注册时间同时可注册时间排序2个方法
 
  wp后面是没有显示注册时间与排序这个功能了,是按用户名排序了,下面我们一起来看2个实现后台用户列表添加注册时间同时可注册时间排序2个方法.
 
  方法一
 
  在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" ://开源软件:phpfensi.com
              return get_user_meta($user_id, 'qq', true);
              break;
      }
  }
  让我们添加的这个“注册时间”可以点击,也就是添加链接并且右边有一个小箭头.
 wordpress后台用户列表添加注册时间同时可注册时间排序
  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 文件中即可.
 
  方法二,代码如下:
 
  <?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']."";  
  }  
  }
  将上面的保存为一个插件,上传激活之后,就可以在用户界面看到注册时间,并且按照注册时间排序了.
 
 

(编辑:PHP编程网 - 黄冈站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读