Codeworks Notes

 2019-08-19

 2020-02-10

Wordpress
バックエンド

wp-loginをメールアドレス限定にする

WordPressログインは「ユーザー名」「メールアドレス」の2通りでログインできますが、会員制サイトを作るときはオリジナルログイン画面を用意してメールアドレスのみで認証できるように、などUXが配慮されるのでユーザー名ログインを使えなくする方法になります。

コードの指定方法

functions.php に以下のコードを記載します。

function force_email_login( $user, $username, $password ) {
$user_data = get_user_by( 'email', $username );
if( !empty( $user_data ) ) {
return wp_authenticate_username_password( null, $user_data->user_login, $password );
}
return wp_authenticate_username_password( null, '___', $password );
}
add_filter('authenticate', 'force_email_login', 20, 3);