WordPressにて、ユーザー名やID、メールアドレスだけの情報からログインさせる方法。
そのままログインフォームで使うというより、会員サイトなどで新規ユーザー登録フォームからそのままログインした状態に持っていく場合などで使えるTipsです。
実はWordPressでは、IDさえ分かっていればwp_set_auth_cookie()
という関数で簡単にログイン状態にできます。
ユーザーIDが$user_idという変数に代入しているとして、
wp_set_auth_cookie( $user_id, false, is_ssl() );
wp_redirect( 'ログインした状態でリダイレクトさせたいページのURL' );
exit;
とするだけ。
では、ユーザー名やメールアドレスの情報からユーザーIDを取得する方法も紹介しておきます。
$user_data = get_user_by('login', 'ユーザー名'); //ユーザー名からユーザーデータを取得
$user_data = get_user_by('email', 'メールアドレス'); //メールアドレスからユーザーデータを取得
//ユーザーデータが無事に取得できれば
if ( $user_data ) {
$user_id = $user_data->ID; //ユーザーIDを取得
/* ...あとはwp_set_auth_cookie()使うだけ... */
}
このように、get_user_by()
を使えば簡単にユーザーIDを取得できます。
コメント