WEBの勉強ノート
Loading

WordPress 全体に閲覧認証をかける

2009 年 9 月 30 日 カテゴリー: Wordpress

自分用ナレッジベースとして、Wordpress でサイトを作ってみました。WEB に公開できるような完成度ではないような文章をためておければいいなと。

最初は、.htaccsess で Bsic認証をかけていたのですが、これでは Windows Live Writer で投稿できませんでした。そこで、Wordpress 側で認証できる仕組みを模索してみました。

今回使用したものは、プラグインではなく、/wp-blog-header.php のwp(); の直前に下記のコードを追記します。

if (is_user_logged_in()){
 }
 else {
 auth_redirect();
};

コードの動作

is_user_logged_in() : ユーザーがログインしているかどうかを返す
WordPress.org : Function Reference/is user logged in

auth_redirect() : ユーザーがログインしているかどうかを判別し、ログインしていなければログインページにリダイレクト。ログインに成功すれば、最初にアクセスを試みたページに再度リダイレクトする。
WordPress.org : Function Reference/auth redirect

説明を見る限り、auth_redirect() のみでも閲覧制限をかけられそうですが、これだけでは正しいユーザー/パスワードを入力してもログインできなくなってしまいました。

この動作を見る限り、auth_redirect() はログインに成功した場合、遷移元のページにリダイレクトするので、ログインページ自体を遷移元と認識してしまって、ログイン成功→ログイン画面のループにはまっているのでしょうか?それともバグ?auth_redirect() を定義しているコードを読んでいないのでわかりません。。

いずれにせよ、ログインしているかどうかを、is_user_logged_in() で判別してから auth_redirect() を呼び出すことで期待通りの動作をさせることが可能になりました。


blog.sugulab.com : WordPressに認証をつける。

コメントをどうぞ