マルチサイト構成の WordPress のユーザー名制限を解除する

WordPress
記事内に広告が含まれています。

マルチサイト構成の WordPress でハイフンを含むユーザー名で登録しようとすると「ユーザー名にはアルファベット小文字の a-z と数字だけが含められます。」とか言われるので解除します。

非・マルチサイト(=シングルサイト?)の場合は少なくともハイフンは使えるので、マルチサイトの場合のみ解除できるように wp-content/mu-plugins/ フォルダ内にそれ用のファイルを設置して解除します。

毎度のことながら先人の知恵の結晶を感謝と共に使わせていただきます。

参考・引用元 WordPressのマルチサイトのユーザー名の制限の解除 – senooken JP
参考 WordPress マルチサイト時のユーザ名制限解除 #PHP – Qiita

<?php
/** * Allow single site username on multiple site.
 *
 * @wp-hook wpmu_validate_user_signup
 * @param array $result * @return array
 */
function wpmu_allow_single_site_username($result)
{
    $error_name = $result['errors']->get_error_message('user_name');

    if (!empty($error_name)
        && $error_name == __('Usernames can only contain lowercase letters (a-z) and numbers.')
        && $result['user_name'] == $result['orig_username']
        && $result['user_name'] == sanitize_user($result['user_name'], true)) {
        unset($result['errors']->errors['user_name']);
        return $result;
    }
    return $result;
}
add_filter('wpmu_validate_user_signup', 'wpmu_allow_single_site_username');

上記引用元のソースから add_filter() の位置を変更してソース整形(個人の趣味)。

タイトルとURLをコピーしました