-
-
Save hissy/4fe73a1f9c4d82a5f33b to your computer and use it in GitHub Desktop.
To: kokona_san via http://a-webcafe.net/private-term/
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?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