WordPressを会員制サイトにするために、必ずログインさせたいときがあります。
以前、wp-blog-header.phpにて、ログインしているかどうか判断して振り分ける方法を記載しました。この方法の欠点は、WordPressをアップデートするともとに戻ってしまう可能性があることです。
そこで、もっとスマートな方法としては、アクションフックを使う方法があります。自分のテーマのfunction.phpに下記のコードを記載します。
function login_check() {
if (is_user_logged_in()){
} else {
auth_redirect();
};
}
add_action('get_header', 'login_check');
if (is_user_logged_in()){
} else {
auth_redirect();
};
}
add_action('get_header', 'login_check');
BuddyPressでは、get_headerでフックしてもうまくいかない場合があるので、template_redirectを使うとよいでしょう。
function login_check() {
if (is_user_logged_in()){
} else {
auth_redirect();
};
}
add_action('template_redirect, 'login_check', 9);
if (is_user_logged_in()){
} else {
auth_redirect();
};
}
add_action('template_redirect, 'login_check', 9);
通常のテンプレートがデフォルトの優先度10なので、9以上にすると良いと思います。
以上です。