web-dev-qa-db-ja.com

登録時にuser_loginを変更する

私は自分のブログにソーシャルログインオプションを追加するサードパーティプラグインを使用しています。それは非常にうまく機能しますが、ユーザーが自分のソーシャルアカウントでログインすることを選択した場合のユーザーログイン名(データベースのuser_login)はこの形式で保存されます - "First-Second "なので、各部分の最初の文字は大文字です。私自身のuser_loginは "Iurie-Malai"になりますが、 "iurie-malai"が欲しいのですが。

私はWordPressのユーザー名は大文字と小文字を区別しないことを知っています、しかし私はそのユーザーログインが小文字だけであることを望みます。これどうやってするの?

1
Iurie Malai

user_register 関数を使用して、 wp_update_user アクションフックにフックし、手動で文字列を小文字にすることができます。これは簡単な例です。

add_action( 'user_register', 'callback_function', 10, 1 );

function callback_function( $user_id ) {
    // Get the user by their ID
    $user = get_user_by( 'id', $user_id );
    // Update their user_login
    wp_update_user(
        array( 
            'ID'         => $user_id, 
            'user_login' => strtolower( $user->user_login ) 
        )
    );
}

pre_user_login フィルタを使う

次のように、上記のフィルタを使用して、ユーザーのログインをデータベースに追加する前にフィルタ処理できます。

add_filter( 'pre_user_login', 'callback_function' );
function callback_function( $login ) {
    return strtolower( $login );
}
1
Jack Johansson