WordPress 登录的时候会提示输入「用户名称」和「密码」,而这个「用户名称」其实也可以是「邮箱」,很方便但也很容易让久未登入的用户忘记当初怎么登录的。
所以满多时候会刻意的把「用户名称」直接改成「帐号」或是「信箱」字眼来提示。 这比起让客户端回想「用户名称」更直觉与不会搞混。
毕竟看到「用户名称」就会让人想打一个昵称或英文名字,好像用在之后呈现出来能够人性一点。 但其实不是,也因此提高注册人的记忆复杂度。
且又刚好 WordPress 这个「用户名称」还可以注册有空白的一组字符串,对现在很多系统来说属不常见的设计 XD
所以为了避免还真的给你打个「Jacky Chen」这样的用户名称去注册,程序上要补一个逻辑,如下:
function mxp_validate_username_with_spaces($valid, $username) { if (preg_match("/\\s/", $username)) { return false; } return $valid; } add_filter('validate_username', 'mxp_validate_username_with_spaces', 10, 2); function mxp_show_registration_errors($errors, $sanitized_user_login, $user_email) { if ($sanitized_user_login == '') { $errors->add('invalid_username', '<strong>帳號中不得含有空白字元。</strong>'); } return $errors; } add_filter('registration_errors', 'mxp_show_registration_errors', 10, 3);
上述代码片段放置于子主题中 functions.php 即可发挥作用,过滤含有空白字符串的帐号注册,避免用户动线发生问题。