先日書いた記事でget_currentuserinfoを使ってユーザーIDを取得し、GoogleAnalyticsのトラッキングコードを出力しない方法を書きました。(その記事はこちら
しかし、この方法では他の管理者や編集者が追加された場合に、いちいちテンプレートの書き換えをしなければならない事に気付きました。これじゃダメだなと思ったので今度は同じ関数で取得できるUserlevelを使う事にしました。

ユーザー権限ごとのレベル

Userlevelは0~10の11段階で別れていて、そのレベルに応じて管理画面上で出来る操作が変わってきます。デフォルトでの各ユーザー権限のレベルを調べたところ、下記の通りになりました。(使用しているWordPressのバージョンは3.5.1です。)

  • 管理者(administrator):10
  • 編集者(editor):7
  • 投稿者(author):2
  • 寄稿者(contributor):1
  • 購読者(subscriber):0

get_currentuserinfoでUserlevelを取得

上記のUserlevelを使って権限によって出力するコードを制御します。私は寄稿者以下にトラッキングコードを出力したかったので、下記のような記述になりました。

<?php global $current_user;
get_currentuserinfo();
$user = $current_user->user_level; /* ログインしているユーザーのIDを取得 */
if($user <= 1){ ?> /* 寄稿者、購読者の権限だけ出力 */
/* GoogleAnalyticsのトラッキングコードを挿入 */
<?php } ?>

4行目の「if($user <= 1)」の記述を変える事で各権限での制御が出来るようです。これで新しくユーザーの追加が行われてもテンプレートの記述を変えずに済みました。