[WordPress] 禁止含有空白字元的使用者名稱註冊

本篇文章更新時間:2020/05/03
如有資訊過時或語誤之處,歡迎使用 Contact 功能通知。
一介資男的 LINE 社群開站囉!歡迎入群聊聊~


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 即可發揮作用,過濾含有空白字串的帳號註冊,避免使用者動線發生問題。


Share:

作者: Chun

資訊愛好人士。主張「人人都該為了偷懶而進步」。期許自己成為斜槓到變進度條 100% 的年輕人。[//////////____30%_________]

參與討論

5 則留言

  1. 剛剛再次確認,標準 WordPress 登入表單,欄位顯示的是 [使用者名稱或電子郵件地址]。

    英文也是。

    所以只出現 [使用者名稱] 提示的欄位,應該不是標準登入表單。

    嚇死我了。

    如果你有找到其他標準登入表單只顯示 [使用者名稱] 或 [電子郵件地址] 欄位提示,跟我說,我先怒改一波。

    然後回報。

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *