WordPress・ログインしたユーザーにだけ表示したいコンテンツ
jsやPHPの文法もさながら、WordPress自体が持っている機能の関数もたくさんあって試行錯誤の連続です。
今回はページ遷移で苦戦ました。無限ループにも陥りました。
とあるサイトにて、「複数あるコンテンツのうち1つだけは正常ログインしたユーザーのみ閲覧できるようにしたい」とのご要望がありました。
画面遷移のイメージです↓
結論として「auth_redirect」関数を使用しました。 リファレンスはこちら
auth_redirect関数とは・・(上記リファレンスより抜粋)
ユーザーがログインしているかをチェックして、ログインしていない場合にはログインページにリダイレクトします。
このコードは、ページから呼び出された場合は、そのページを閲覧しているユーザーがログインしているかどうかをチェックします。 ユーザーがログインしていない場合は、ログインページにリダイレクトされます。 ユーザーは、ログイン時に、最初にアクセスしようとしていたページに直接送信されますようにリダイレクトされます。
今回はたまたま該当するページがテンプレートを使用していたのでテンプレートのphpファイルに下記記述を追加しました。
header.phpに記載する方もいらっしゃるようですね。
<?php if( !is_user_logged_in() ) { auth_redirect(); } ?>
if( !is_user_logged_in() )でログインしているかを判断し、されていない場合はログイン画面へ遷移します。
ログインされている場合には、もともと表示させたかった画面(上図の黄色いmembers page)へと遷移してくれます。
リファレンスを見てみると、
<?php auth_redirect(); ?>でもいいような気がします。が・・最初はこれだけで実行してみましたが、うまく遷移しませんでした・・。
スポンサードリンク
コメントを書き込む