このブログはWordPressを使っている。
WordPressではログインしているユーザーのみに表示させたいものがあった場合などに使える関数がある。
この場合のテンプレート関数の書き方。■設定環境
WordPressバージョン 4.2.2
is_user_logged_in()を使用する方法とget_currentuserinfo()を使う方法がある。
ログインしているユーザーのみ表示させたりしなかったりすることができるので
会員制コンテンツでのWordPressの使用などが考えられる。
個人ブログでは自身でのアクセス時に広告の表示をさせたくない場合などに利用できるだろう。
アクセス数がそこまでない個人ブログなどの場合には表示回数がクリック単価へ影響してしまうのでログイン時非表示にしておくのは有効でしょう。
ログインしているユーザーのみに表示させる分岐のいれ方
is_user_logged_in()
ユーザーがログインしているときの表示分岐へ使用。
前述のように会員制サイトなどでも利用される。
<?php if (is_user_logged_in()) ?> ログインユーザーへ表示 <?php elseif { ?> ログインしてないユーザーへ表示 <?php } ?>
ログインしているユーザーに広告やアナリティクスコードを表示させたくない場合には下記になる。
<?php if (is_user_logged_in()) ?> //非表示 <?php elseif { ?> //広告タグを書く <?php } ?>
get_currentuserinfo()
get_currentuserinfo()を使うとログインユーザーの権限レベルに応じで条件分岐が作れる。
管理者(administrator):10
編集者(editor):7
投稿者(author):2
寄稿者(contributor):1
購読者(subscriber):0
</blockquote> <?php global $current_user; get_currentuserinfo(); if ($current_user->ID == '') { // ログインしていない } else if ($current_user->user_level == 10) { // 管理者(administrator)としてログインしている } else if ($current_user->user_level >= 7) { // 編集者(editor)としてログインしている } else if ($current_user->user_level >= 4) { // 作成者(author)としてログインしている } else if ($current_user->user_level >= 1) { // 投稿者(contributor)としてログインしている } else { // 購読者(subscriber)としてログインしている } ?>
WordPressのことでわからなくなってつまづいたらネットで聞いてみよう!
質問をすると答えてくれるQ&Aサイト「teratail(テラテイル)」ではWordPressの質問が5000件以上あり、
毎日様々な質問が投稿されています。
Q&Aサイトなんてたくさんあるじゃないかと言われてしまいそうですが、
teratailの良いところはエンジニアが抱える問題の解決を全力でサポートするところ
つまりプログラミング、エンジニアリングに特化している点です。
WordPressフォーラムよりも早く返答がくることもありますので、
わからなくなったことを溜め込まずにサクッと解決してしまいましょう。
WordPressの情報収集にもおすすめです。
安定した仕事量と給与がもらえるWEBエンジニアをめざしているなら
■参照URL
【WordPress】 get_currentuserinfoでユーザー権限によって表示を変える | StudioDansyaku