×

WordPress禁止特定用户修改密码

优畅主题 Wordpress技术 2013-05-16 15:28 3,977 0 条评论

可能会有人用公共帐号登录,进入后台修改密码,导致其他人无法使用这帐号。在WordPress中,如何禁止特定用户修改密码呢?

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

$disable_ids = array( 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中的代码。

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

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

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


如果本文对你有帮助,你可以扫描右边的二维码打赏,谢谢支持
联系优畅:uctheme#qq.com (#改为@)
微信订阅号:优畅主题(uctheme)
官网淘宝店:http://uctheme.taobao.com
版权声明:版权归 优畅主题 所有,转载请注明出处!
转载请保留链接: https://www.uctheme.com/technical/224.html
谢谢支付宝打赏
谢谢微信打赏

品牌创立:2012-11-18优畅主题

优畅主题成立于2012年11月18日,专业Wordpress导购主题开发商,拥有多年Wordpress主题设计经验,专门为淘宝客和导购客站长量身打造高端赚钱模板,我们注重细节,有着严谨的开发态度,一切从客户角度出发,如果你也喜欢 WordPress导购主题,欢迎和我们一起交流!


3 + 2 = ?

目前还没有评。

切换注册

登录

忘记密码 ?

您也可以使用第三方帐号快捷登录

切换登录

注册