WordPressで現在のユーザーが管理者かどうか判定する方法
最終更新日:
WordPressで現在ログインしているユーザーが管理者かどうかを判定する方法を紹介します。管理者だけにコンテンツを表示させたい、もしくは管理者以外に表示させたい場合に役立ちます。
管理者かどうか判定する方法
現在ログインしているユーザーが管理者かどうか判定するには、current_user_can関数を使用します。
管理者かどうか判定するにはcurrent_user_can関数の引数に権限名(manage_optionsなど)を指定します。
管理者の場合
if ( current_user_can( 'manage_options' ) ) {
//管理者の場合の処理
}
管理者以外の場合
if ( !current_user_can( 'manage_options' ) ) {
//管理者以外の場合の処理
}
管理者と管理者以外で条件分岐する場合
if ( current_user_can( 'manage_options' ) ) {
//管理者の場合の処理
} else {
//管理者以外の場合の処理
}
current_user_can関数の引数に権限グループ(administrator)を指定することは避けましょう。意図しない結果を返す場合があります。
current_user_can関数の使い方は以下の記事でご紹介しています。
current_user_can()
WordPressのcurrent_user_can関数の使い方
ユーザー定義関数を作成する
管理者かどうかを判定するユーザー定義関数を作成するには、テーマ内のfunctions.phpに下記のコードを追加します。
function is_admin_user() {
return current_user_can( 'manage_options' );
}
下記のように作成したユーザー定義関数を使用します。
if( is_admin_user() ) {
//管理者の場合の処理
} else {
//管理者以外の場合の処理
}
よくある使用例
下記のようなケースで管理者かどうかを判定します。
- 管理者だけにデバッグ情報を表示したい場合
- 管理者だけにテスト用のデザインを表示したい場合
- 管理者だけ広告を表示したくない場合