图文

wp支持中文注册用户名的方法升级版

0
登录或者登记去做吧。

最近一直在折腾wordpress支持中文注册的方法和问题,支持wp中文注册其实很简单,网上也有现场的代码,但是网上的代码有安全问题和代码沉郁,如果你想安全又想支持中文,建议使用我的代码。因为这段代码是我在解决问题中遇到的国外大神提供的,我把国内流传的代码给他,他说代码可以有优化的地方,记录一下,希望能帮助到有用的人

function git_sanitize_user($username, $raw_username, $strict) {
    // 移除用户名中的HTML标签和重音符号
    $username = wp_strip_all_tags(remove_accents($raw_username));

    // 移除URL编码和HTML实体
    $username = preg_replace('|%([a-fA-F0-9][a-fA-F0-9])|', '', $username);
    $username = preg_replace('/&.+?;/', '', $username);

    // 如果是严格模式,只允许字母、中文字符、数字、空格、下划线、点和连字符
    if ($strict) {
        $username = preg_replace('|[^a-z\p{Han}0-9 _.\-@]|iu', '', $username);
    }

    // 移除用户名首尾空格,并将连续空格替换为单个空格
    $username = trim(preg_replace('|\s+|', ' ', $username));

    return $username;
}

add_filter('sanitize_user', 'git_sanitize_user', 10, 3);

把以上代码添加到主题的functions.php中就可以支持中文注册wp了,但是有一个问题我到现在也无法解决,期待有大佬给到解决方案,wp里这样的链接可以访问/author/中文用户名,但是有些主题是依赖用户名来访问个人主页的,比如/profile/用户名,像这样的链接就不支持中文了,想要支持也可以实现,但是这样的链接无法站内通信,如果你的主题有私信功能的话,我已经花钱再找大神,已经有两个花了时间没搞搞定的,哈哈哈,我也不知道什么时候能搞定,期待吧

行政服务中心视频素材免费下载
细胞修复视频素材免费下载韩国医生

还没有人喜欢,您要做第一个吗?