WordPressでユーザーがログイン中か否かで表示内容を出し分ける方法

5783 Views
WordPress
WordPressでユーザーがログイン中か否かで表示内容を出し分ける方法

WordPressを使って制作をしていると
・すでに公開してるサイトだからログイン中か否かで表示内容を出し分けたい
・管理者でログインしている時はAdsenceの自己クリックを防止するために非表示にしたい
などといった出し分けを行いたい時があるかと思います。

そんな時に使えるWordPressの関数です。

SNSでシェア♪

スポンサーリンク

目次

is_user_logged_in()

「is_user_logged_in()」はWordPressが持っている関数になります。
ページを見ているブラウザがWordPressへログインしているか否かを判定してくれるものなので、

<?php
if (is_user_logged_in()) {
  //ログイン中
  echo "ログイン中だよ!";
} else {
  //ログアウト
  echo "ログインしてないよ。";
}
?>

といった使い方が可能です!

 

ユーザーの権限に合わせて条件分岐

ユーザーが複数登録されているサイトで、権限レベルに合わせて条件分岐を行いたい場合は、

//ユーザ権限の取得
function getUserLevel() {
    global $current_user;
    get_currentuserinfo();  //ユーザレベルを取得
    $userLevel = array_keys($current_user->caps);
    /*
    管理者:administrator
    編集者:editor
    投稿者:author
    寄稿者:contributor
    購読者:subscriber
    */
    return $userLevel[0];
}

functions.phpへ上記のコードを追加して、出し分けを行いたい該当箇所で、

<?php
$userLevel = getUserLevel();
if ($userLevel == "administrator") {
  //管理者のみに表示
} else if ($userLevel == "editor") {
  //編集者のみ
} else if ($userLevel == "author") {
  //投稿者のみ
} else if ($userLevel == "contributor") {
  //寄稿者のみ
} else if ($userLevel == "subscriber") {
  //購読者のみ
}
?>

をしてあげればいいかと思います!

 

まとめ

ログイン中、ログアウト中それぞれの条件分岐ないでコードをたくさん書く必要があるときは、
ファイルをインクルードなどしてあげると、よりコードがゴチャゴチャしなくなっていいかもしれませんね。

SNSでシェア♪

スポンサーリンク

関連記事