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

WordPress 4.9.4多站点:如何允许用户以邮箱作为用户名注册

解决WordPress 4.9.4多站点允许邮箱作为用户名注册的问题

我刚好处理过同款WordPress 4.9.4多站点的注册限制问题,给你梳理下问题根源和两种解决方案:

问题原因

WordPress多站点默认在wp-includes/ms-functions.php文件的wpmu_validate_user_signup函数里,用正则表达式限制了用户名只能包含小写字母(a-z)和数字,这就导致带@和.的邮箱地址无法通过验证,触发「用户名只能包含小写字母(a-z)和数字」的错误提示。

解决方案1:直接修改核心文件(不推荐,更新会覆盖)

  1. 找到WordPress安装目录下的wp-includes/ms-functions.php文件
  2. 搜索wpmu_validate_user_signup函数,定位到以下代码段:
    if ( !preg_match( '/^[a-z0-9]+$/i', $user_name ) ) {
        $errors->add( 'user_name', __( 'Username can only contain lowercase letters (a-z) and numbers.' ) );
    }
    
  3. 修改正则表达式和提示文本,让它支持邮箱格式:
    // 仅允许邮箱作为用户名
    if ( !preg_match( '/^[a-z0-9._%+-]+@[a-z0-9.-]+\.[a-z]{2,}$/i', $user_name ) ) {
        $errors->add( 'user_name', __( 'Please enter a valid email address as your username.' ) );
    }
    
    // 或者同时支持普通用户名和邮箱
    if ( !preg_match( '/^([a-z0-9]+|[a-z0-9._%+-]+@[a-z0-9.-]+\.[a-z]{2,})$/i', $user_name ) ) {
        $errors->add( 'user_name', __( 'Username must be either a valid email address or contain only lowercase letters (a-z) and numbers.' ) );
    }
    

解决方案2:用钩子函数修改(推荐,避免更新丢失)

直接修改核心文件会在WordPress更新后被覆盖,更稳妥的方式是在当前主题的functions.php文件中添加以下代码,通过钩子替换验证规则:

add_filter( 'wpmu_validate_user_signup', 'allow_email_username_for_ms' );
function allow_email_username_for_ms( $validation_result ) {
    $username = $validation_result['user_name'];
    $errors = $validation_result['errors'];

    // 移除默认的用户名错误提示
    $errors->remove( 'user_name' );

    // 自定义验证规则:允许普通用户名或邮箱格式
    if ( !preg_match( '/^([a-z0-9]+|[a-z0-9._%+-]+@[a-z0-9.-]+\.[a-z]{2,})$/i', $username ) ) {
        $errors->add( 'user_name', __( 'Username must be either a valid email address or contain only lowercase letters (a-z) and numbers.' ) );
    }

    $validation_result['errors'] = $errors;
    return $validation_result;
}

添加完代码后,用户就能用邮箱地址作为用户名注册多站点账号了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 10:03:23