To: kokona_san via http://a-webcafe.net/private-term/
<?php | |
function require_login_for_private_works() { | |
if ( ( is_singular( 'works' ) && has_term( 'private', 'works_cat' ) || is_tax( 'works_cat', 'private' ) ) && ! is_user_logged_in() ) { | |
/** | |
* ログイン成功時に現在のページに戻ってくるため、現在のURLを取得する | |
* get_home_urlだと、サブディレクトリにインストールしている際に問題になりますので、 | |
* $_SERVER['HTTP_HOST'] を使った方が良いでしょう | |
* set_url_scheme関数は、SSLの使用を考慮してくれます | |
*/ | |
$redirect_to = set_url_scheme( 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'] ); | |
/** | |
* header()関数を使っても動きますが、より安全な wp_safe_redirect 関数を使いましょう | |
*/ | |
wp_safe_redirect( wp_login_url( $redirect_to ) ); | |
exit; | |
} | |
} | |
/** | |
* リダイレクト系のフックはtemplate_redirectにかける方がいいと思います | |
* get_headerはいかにもhttpヘッダに関係ありそうな名前ですが実は関係なく | |
* テンプレートのheader.phpを読み込むところです | |
*/ | |
add_action( 'template_redirect', 'require_login_for_private_works' ); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment