WordPress パスワードなしでユーザーをログイン状態にする
どうもfujiharaです。1年の4分の1が早くも終わりました。本日はパスワードを入力せずにWordPressにログインする方法をご紹介いたします。
背景
外部サービスにログインしたユーザーはWordPress内の表示させる情報を変えたい。またユーザーによって内容は変えなくても可能な時に、 WordPress側にユーザーアカウントを1つ1つ用意するのではなく、ログイン状態用ユーザーを1つ作成してそのユーザーがログインしている状態にすれば実現できるじゃん! ということで探していたらありました。
実装
$userID = XXX;
wp_clear_auth_cookie();
wp_set_current_user ( $userID );
wp_set_auth_cookie ( $userID );
説明
- まず設定したい$userIDを決めます。(存在するユーザーのIDです(ない場合は作成して下さい)。あくまで特定箇所表示用なので管理者のIDなどを指定しないように注意して下さい)
- wp_clear_auth_cookie で一旦cookieをリセットします。
- wp_set_current_user で指定したユーザーの状態にします。
- wp_set_auth_cookie で指定したユーザーをcookieにセットします。(ログイン状態を維持)
ログイン状態判定にはis_user_logged_in関数などで可能です。
まとめ
いかがでしたでしょうか?簡単に実装できると思いませんか?
実際には設定したユーザーには管理画面を見せないよう権限を設定したり、セキュリティ面を注意する必要があるのでご注意下さい。
気になった方はお試し下さい。