自動的に特定のユーザー名でログインするように設定する
たとえば、ユーザーがデモ機能を利用できるようにdemoユーザー名で自動的にログインする機能を作成したい場合があります。
もしユーザー接続すると、自動的にDEMOというユーザー名でログインできるようにする自動ログイン機能を実装するには、次のようなコードを使用している WordPress テーマの関数ファイル(のfunctions.php)に追加します。
add_action('init', 'auto_login'); add_action('admin_init', 'auto_login'); function auto_login() { if (!is_user_logged_in()) { //by user name $user = get_user_by( 'login', 'DEMO' ); //Or by user id, 2 being the ID of the demo user //$user = get_userdata(2); wp_set_current_user($user->ID, $user->user_login); wp_set_auth_cookie($user->ID); do_action('wp_login', $user->user_login); } } // Source: http://wordpress.stackexchange.com/
テストしてみるとサイトにアクセスすると無条件DEMOで自動ログインになりますね。 (これを行う前に、チャイルドテーマを作成してチャイルドテーマ内の関数ファイルに入力するようにしてください。」ワンクリックで簡単にチャイルドテーマを作成する「注)
特定のユーザー名事前詰め
わずかに異なる方法で、ログインページにアクセスすると、ユーザー名を事前に詰め下にパスワードを知らせる方法を考えてみることができます。
この場合、次のコードを関数ファイルに入れると デモというユーザー名が自動的に入力されます。
/** * Changes the default user name to "DEMO" -- 기본 ユーザー 이름을 "DEMO"로 변경함 * * @return string $user_login */ function login_form_username() { global $user_login; return $user_login = 'DEMO'; } add_action( 'login_head', 'login_form_username' );
そして、次のコードをテーマ関数ファイルに入れると 'パスワードは「DEMO」です'というフレーズが表示されます。
/** * Adds a note beyond the user login name & password field -- 로그인 이름과 비밀번호 필드 아래에 전달 사항 표시 * * @return string */ function login_form_note() { print '<div class="wrap"><h3 style="text-align: center; margin-bottom: 15px;">비밀번호는 "DEMO"입니다</h3></div>'; } add_action( 'login_form', 'login_form_note', 0 );
ログイン画面が次のように表示されます。
ちなみにセキュリティのために入力したユーザー名(ID)が、実際に登録されているユーザー名かどうかが表示されないようにするには、次のようなコードを使用することができます。 つまり、ユーザー名が無効か、またはユーザー名は正しいのですが、パスワードが間違ってかどうかを入力する人が知ることができないようにして、セキュリティを強化することができます。
/** * Hide wrong login names -- 로그인 이름 숨기기 * * @return string */ function no_login_error() { return __( '로그인 정보가 잘못되었습니다.' ); } add_filter( 'login_errors', 'no_login_error' );
自動ログインのリンクを生成してくれるAutologin Linksプラグイン
Autologin Links プラグインを使用すると、選択したユーザーが自動的にログインリンクを介して WordPress サイトに自動的にログインできるようにすることができます。
このプラグインと上記の内容は、間違って使用する場合、セキュリティ上の問題になることがありますので、使用時に注意が必要です。
コメントを残す