You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

WordPress中DISALLOW_PASSWORD_RESET不生效问题求助

解决WordPress后台密码修改/重置禁用问题

你添加的DISALLOW_PASSWORD_RESET常量仅会禁用前台的密码重置请求流程,但后台用户编辑页面、个人资料页的密码生成/修改功能不受这个常量控制,需要通过额外的钩子来彻底禁用。以下是具体解决方案:

方法1:隐藏后台密码修改字段

将以下代码添加到主题的functions.php文件(推荐使用子主题,避免主题更新丢失代码)或自定义插件中:

// 隐藏用户编辑页和个人资料页的密码字段
add_action('admin_head-user-edit.php', 'hide_password_fields');
add_action('admin_head-profile.php', 'hide_password_fields');

function hide_password_fields() {
    echo '<style>
        .user-pass1-wrap, .user-pass2-wrap, .pw-weak {
            display: none !important;
        }
    </style>';
}

方法2:彻底阻止密码更新操作

如果需要从逻辑层面阻止任何密码修改请求(包括通过代码、API发起的修改),可以添加以下钩子:

// 拦截用户密码更新请求
add_filter('pre_user_update', BlockPasswordUpdate, 10, 2);

function BlockPasswordUpdate($user_id, $userdata) {
    if (!empty($userdata['user_pass'])) {
        wp_die('密码修改功能已被禁用');
    }
    return $user_id;
}

// 同时隐藏密码字段
add_action('show_user_profile', 'remove_profile_password_section');
add_action('edit_user_profile', 'remove_profile_password_section');

function remove_profile_password_section($user) {
    ?>
    <style>
        .user-pass1-wrap, .user-pass2-wrap {
            display: none;
        }
    </style>
    <?php
}

完整方案

保留你已在wp-config.php中添加的代码:

define('DISALLOW_FILE_EDIT', true);
define('DISALLOW_FILE_MODS', true);
define('DISALLOW_FILE_DELETE', true);
define('DISALLOW_PASSWORD_RESET', true);

再结合上述任意一种钩子代码,即可同时禁用前台密码重置和后台密码修改功能。

内容的提问来源于stack exchange,提问作者sohag513

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.23 04:07:36