Wordpress Registry Error: Usernames can only contain letters, numbers, - and @

Wordpress Registry Error: Usernames can only contain letters, numbers, - and @

嗨朋友们和专家编码员;

我使用 wordpress,buddpress 插件 作为用户帐户。但是注册时用户名出现错误:

Usernames can only contain letters, numbers, - and @.

例如: Rustu (OK) / Rüştü (Not OK)

可能会为土耳其语字符 (utf-8) 添加过滤器,以便能够在用户名中使用 'I ğ ü' 等...

非常感谢你的帮助。

将这段代码添加到您的主题 functions.php 中,或者您可以根据需要在插件中使用它。这将使用户能够使用非 ansi 字符进行注册。

add_filter( 'sanitize_user', 'sanitize_user_username', 3, 3);

function sanitize_user_username($username, $raw_username, $strict) {
    $username = $raw_username;
    $username = strip_tags($username);
    $username = preg_replace('|%([a-fA-F0-9][a-fA-F0-9])|', '', $username);
    $username = preg_replace('/&.+?;/', '', $username);

    if ( $strict )
        $username = preg_replace('|[^a-z0-9 _.\-@\x80-\xFF]|i', '', $username);
    $username = preg_replace('|\s+|', ' ', $username);

    return $username;
}