有人用公共帐号登录,进入后台修改密码,导致其他人无法使用这帐号。在WordPress中,如何禁止特定用户修改密码呢?
方法很简单,去掉这个公共帐号修改密码的权限即可,我们可以在主题目录下的functions.php中添加以下代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
|
$disable_ids = array( 2 ); // 2为禁止修改密码的用户idglobal $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?进入后台 – 用户,点击某个用户名,进入页面的网址如:https://www.jack361.com/wp-admin/user-edit.php?user_id=258,其中的258就是用户id