wordpress用中文昵称注册

wordpress为了安全考虑,注册时只能用英文不支持中文
将以下代码添加到主题的 functions.php  文件

// 允许中文用户名注册
remove_filter('sanitize_user', 'sanitize_user', 10, 3);
add_filter('sanitize_user', function($username, $raw_username, $strict) {
    // 基础清理
    $username = wp_strip_all_tags($raw_username);
    $username = remove_accents($username);
    $username = preg_replace('/\s+/', '', $username);
    $username = trim($username);
    // 安全过滤:只允许中文、字母、数字、下划线、连字符和点
    $username = preg_replace('/[^\p{Han}a-zA-Z0-9_\-.]/u', '', $username);
    
    // 长度限制 (匹配数据库字段)
    $username = substr($username, 0, 20);
    
    return $username;
}, 10, 3);

// 验证用户名格式
add_filter('validate_username', function($valid, $username) {
    // 确保包含有效字符
    if (!preg_match('/^[\p{Han}a-zA-Z0-9_\-.]{2,}$/u', $username)) {
        return false;
    }
    return $valid;
}, 10, 2);

评论 (0)

发表评论