WordPressのユーザごとに表示を切り分ける方法を書いている。
(1) ログインユーザの権限ごとに切り分ける方法
こちらの方法ならば比較的簡単かと思われる。
if(is_user_logged_in()){ // ログインしていれば global $current_user; get_currentuserinfo(); // 権限のデータがあれば if(isset($current_user->roles) && isset($current_user->roles[0])){ $user_level = $current_user->roles[0]; } }else{ // ログインしていなければ $user_level = 'guest'; } // 処理 switch($user_level){ case 'administrator': /* ここに管理者ユーザがアクセスした時の処理をいれる */ break; case 'subscriber': /* ここに購読者ユーザがアクセスした時の処理をいれる */ break; case 'guest': /* ここにログインしてないユーザの処理をいれる */ break; default: /* その他ユーザの処理 */ }
$current_userからユーザのデータを取得している。
WordPressの権限は、administrator(管理者)、editor(編集者)、author(投稿者)、contributor(寄稿者)、subscriber(購読者)などがある。
使用方法としては、ユーザ権限によって画像やcssを変えたり、管理者ユーザだけアクセス解析を使用しない、といったものがあるだろう。
(2) アカウント名(ログイン名)を指定して切り分ける方法
上の応用みたいな方法です。
if(is_user_logged_in()){ // ログインしていれば global $current_user; get_currentuserinfo(); // データがあれば if(isset($current_user->data) && isset($current_user->data->user_login)){ $user_login = $current_user->data->user_login; } }else{ // ログインしていなければ $user_login = 'guest'; } // 処理 switch($user_login){ case 'olivesystem': /* ここにolivesystemがアクセスした時の処理をいれる */ break; case 'hogehoge': /* ここにhogehogeがアクセスした時の処理をいれる */ break; case 'guest': /* ここにログインしてないユーザの処理をいれる */ break; default: /* その他ユーザの処理 */ }
あらかじめアカウント名を知っている(もしくは固定する)という前提になるが、権限ではなくアカウント名なので詳細に分岐できるかと思う。
用途としては、特定のユーザだけブロックしたり、特定のユーザだけ特別ページに誘導できる。
会員制サイトなどに利用してみてはいかがだろうか。