WordPress

ログイン判定とリダイレクトのメモ

カスタム投稿の記事は特定の人のみ表示、っていうことがやりたかったので、ログインしているユーザーかどうかで判定し、そうでなければトップに飛ばす、っていう対応にしようかなと思っていろいろ探したという覚書。

ログインしているユーザーのみに表示

ログインしているかどうかをチェックするには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
}
?>

簡易方法としてサイトを読み込む前にログイン判定をして、ログインをしていない場合はログイン画面に飛ばす方法もある

  • この記事を書いた人

ゆず

忘れないように自分の覚書と、誰かも困っているかもしれないので参考になればいいなくらいの軽い備忘録です。
一杯おごる

-WordPress