【问题标题】:How to validate forgot password in wordpress?如何在wordpress中验证忘记密码?
【发布时间】:2025-12-08 16:50:01
【问题描述】:

我想在 wordpress 上为忘记密码添加自定义验证

我已尝试使用此代码进行验证

add_action('validate_password_reset','validate_lost_password',10,2);
function validate_lost_password( $errors, $user)
{
    $exp = '/^(?=.*\d)((?=.*[a-z])|(?=.*[A-Z])).{6,32}$/';

    if(!preg_match($exp, $_POST['pass1']) )
           $errors->add( 'error',  'Password must be alphanumeric.','');
}

当我在密码输入表单时,它仍然会提交我输入的密码,即使它确实进入了指示密码无效的 if 语句,不应提交,它会显示错误并要求输入新密码。我也尝试过添加 return $errors; 但它仍然提交了密码。

【问题讨论】:

  • 您提供的代码对我来说工作正常。可能是您使用了一些与此代码冲突的插件。
  • 嗯,我明白了,这可能是我的情况

标签: wordpress validation forgot-password


【解决方案1】:

请您尝试在function.php文件中使用波纹管代码

add_action( 'validate_password_reset' , 'se_password_min_length_check' 10, 2 );

function se_password_min_length_check( $errors, $user){
    if(strlen($_POST['pass1']) < 8)
        $errors->add( 'password_too_short', 'ERROR: password is too short.' );
}

【讨论】:

  • 这适用于其他人,但我只是看到我的因为与插件冲突而无法正常工作
  • 你能把它添加到function.php文件的顶部吗,你能在控制台显示什么错误
  • 我已经修复了我的错误,但我无法发布代码,因为我刚刚编辑了导致该钩子冲突的简码。我也接受了你的回答,因为它应该像我的示例代码一样正常工作。