カスタム投稿の記事は特定の人のみ表示、っていうことがやりたかったので、ログインしているユーザーかどうかで判定し、そうでなければトップに飛ばす、っていう対応にしようかなと思っていろいろ探したという覚書。
ログインしているユーザーのみに表示
ログインしているかどうかをチェックするにはis_user_logged_in()を使うそうです。
if ( is_user_logged_in() ) { //ログインしているとき何かする } else { //ログインしてなければ何かする };
投稿タイプの条件分岐
if( '投稿タイプ名' == get_post_type() ){ }
リダイレクト
<meta http-equiv="refresh" content="0;url=<?php echo home_url(); ?>">
ホームに飛ばしたい。
本当はリダイレクトは
header("HTTP/1.1 301 Moved Permanently"); header( "location: " . home_url() ); exit();
でやろうと思ったらWarning: Cannot modify header information – headers already sent byなんたら~~~っていうエラーが出たのでおとなしくjavascriptに頼ることにしました。
このエラーの解消法はこちら
以上をまとめて
・ログインしているかチェック
・ログインしていなければこの投稿タイプは見れないよ
・だからホームに(自動的に)とばすね
って書きました。
このページはログインしないと見れないよ!っていうページか投稿をつくってそちらに飛ばすほうが親切かもしれません。
追記:WordPressサイト全体を非公開で運用するとき
<?php if ( !is_user_logged_in() ) { ?> <script type="text/javascript"> location.href = "<?php echo home_url(); ?>/wp-admin/"; </script> <?php } ?>
簡易方法としてサイトを読み込む前にログイン判定をして、ログインをしていない場合はログイン画面に飛ばす方法もある