WordPress パスワードなしでユーザーをログイン状態にする

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関数などで可能です。

まとめ

いかがでしたでしょうか?簡単に実装できると思いませんか?
実際には設定したユーザーには管理画面を見せないよう権限を設定したり、セキュリティ面を注意する必要があるのでご注意下さい。 気になった方はお試し下さい。

  • このエントリーをはてなブックマークに追加

この記事を読んだ人にオススメ