共计 719 个字符,预计需要花费 2 分钟才能阅读完成。

新秀于 2020.3.23 日测试, 此方法不适合 qux 主题.
借鉴了 wp-includes/formatting.php 中 sanitize_user 函数的写法,同样是将以下 php 代码复制到当前主题目录下的 functions.php 中,即可让 WordPress 支持使用中文用户名注册和登录
function ludou_sanitize_user ($username, $raw_username, $strict) {$username = wp_strip_all_tags( $raw_username);
$username = remove_accents($username);
// Kill octets
$username = preg_replace('|%([a-fA-F0-9][a-fA-F0-9])|', '', $username );
$username = preg_replace('/&.+?;/', '', $username); // Kill entities
// 网上很多教程都是直接将 $strict 赋值 false,// 这样会绕过字符串检查,留下隐患
if ($strict) {$username = preg_replace ('|[^a-z\p{Han}0-9 _.\-@]|iu', '', $username);
}
$username = trim($username);
// Consolidate contiguous whitespace
$username = preg_replace('|\s+|', ' ', $username);
return $username;
}
add_filter ('sanitize_user', 'ludou_sanitize_user', 10, 3);
正文完