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

WordPress禁止特定用户修改密码方法

发布:smiling 来源: PHP粉丝网  添加日期:2014-03-18 11:19:56 浏览: 评论:0 

有时我们希望有些用户不能修改密码,而有些用户是可以修改密码的,下面我来给大家介绍关于WordPress禁止特定用户修改密码方法.

方法很简单,去掉这个公共帐号修改密码的权限即可,我们可以在主题目录下的functions.php中添加以下代码:

  1. $disable_ids = array( 2 ); // 禁止修改密码的用户id 
  2. global $current_user
  3. get_currentuserinfo(); 
  4. if ( in_array( $current_user->ID, $disable_ids ) ) { 
  5.   // 后台个人资料页,隐藏密码输入框 
  6.   add_filter('show_password_fields', create_function('$nopass_profile''return false;')); 
  7.    
  8.   // 防止通过其他手段提交密码修改 
  9.   add_action('personal_options_update''no_save_pwd'); 
  10. function no_save_pwd( $user_id ) { 
  11.   if(!emptyempty($_POST['pass1'])) $_POST['pass1'] = ''
  12.   if(!emptyempty($_POST['pass2'])) $_POST['pass2'] = ''
  13. // 禁止使用密码找回功能 
  14. add_filter('allow_password_reset''no_reset_pwd', 10, 2); 
  15. function no_reset_pwd( $allow$user_id ) { 
  16.   global $disable_ids
  17.   if ( in_array( $user_id$disable_ids ) ) 
  18.    $allow = false; 
  19.  
  20.   return $allow

以上代码第1行中的 2 是要禁止其修改密码的用户id,如果要禁止多个用户修改密码,多个id可以用半角逗号隔开,如 array( 2, 10 ),需要说明的,禁止修改密码的用户角色不能是管理员,因为管理员可以进入后台 – 外观 – 编辑,修改functions.php中的代码.

如果你想禁止某用户编辑个人资料我们可以参考下面方法,我们在当前主题的functions.php中添加以下代码:

  1. function disable_user_profile() { 
  2.   if ( is_admin() ) { 
  3.     $user = wp_get_current_user(); 
  4.     if ( 2 == $user->ID )  // 2 改成该用户的id 
  5.       wp_die( '禁止访问' ); 
  6.   } 
  7. add_action( 'load-profile.php''disable_user_profile' ); 

当然,如果你使用前台的用户管理功能,以上方法就失效了.

Tags: WordPress禁止 用户 修改密码

分享到: