【WordPress教程】禁止特定用户修改密码

之前介绍过《WordPress 禁止某用户编辑个人资料》,现在问题又来了,可能会有人用公共帐号登录,进入后台修改密码,导致其他人无法使用这帐号。在 WordPress 中,如何禁止特定用户修改密码呢?
方法很简单,去掉这个公共帐号修改密码的权限即可,我们可以在主题目录下的 functions.php 中添加以下代码:

$disable_ids = array( 2 ); // 2为禁止修改密码的用户id
global $current_user;
get_currentuserinfo();
 
if ( in_array( $current_user->ID, $disable_ids ) ) {
  // 后台个人资料页,隐藏密码输入框
  add_filter('show_password_fields', create_function('$nopass_profile', 'return false;'));
 
  // 防止通过其他手段提交密码修改
  add_action('personal_options_update', 'no_save_pwd');
}
 
function no_save_pwd( $user_id ) {
  if(!empty($_POST['pass1'])) $_POST['pass1'] = '';
  if(!empty($_POST['pass2'])) $_POST['pass2'] = '';
}
 
// 禁止使用密码找回功能
add_filter('allow_password_reset', 'no_reset_pwd', 10, 2);
function no_reset_pwd( $allow, $user_id ) {
  global $disable_ids;
  if ( in_array( $user_id, $disable_ids ) )
   $allow = false;
 
  return $allow;
}

以上代码第 1 行中的 2 是要禁止其修改密码的用户 id,如果要禁止多个用户修改密码,多个 id 可以用半角逗号隔开,如 array( 2, 10 )。需要说明的,禁止修改密码的用户角色不能是管理员,因为管理员可以进入后台 – 外观 – 编辑,修改 functions.php 中的代码。
如何知道用户的 ID?进入后台 – 用户,点击某个用户名,进入页面的网址如:http://www.domain.com/wp-admin/user-edit.php?user_id=1,其中的 1 就是用户 ID
如果想要禁止公用帐号修改个人资料,即让公用帐号无法打开个人资料页,可以查看这篇文章:WordPress 禁止某用户编辑个人资料

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码

    暂无评论内容