現在のユーザーの権限を調べる関数current_user_can()
を使います。
管理人かどうかで分岐するコード
if ( current_user_can( 'administrator' ) ) {
// 管理人だった場合に行う処理
} eles {
// 管理人でない場合に行う処理
}
管理人の場合だけ処理をするコード
if ( current_user_can( 'administrator' ) ) {
// 管理人だった場合に行う処理
}
管理人でない場合だけ処理をするコード
if ( ! current_user_can( 'administrator' ) ) {
// 管理人でない場合に行う処理
}
current_user_can()
は現在のユーザーが引数に指定した権限を持つか権限グループに属していればtrue
、そうでなければfalse
を返します。
管理人かどうが調べたい場合、引数にはadministrator
(管理人の権限グループ)を指定します。
権限・権限グループについて
権限・権限グループはCODEXに詳しく掲載されています。
ユーザーの種類と権限 – WordPress Codex 日本語版
上のコードでは権限グループであるadministrator
を指定しましたが、管理者しかもたない権限を指定することでも同様のことができます。例えばmanage_options
でも同じ結果となります。ネットで調べてみるとmanage_options
を使っている記事も多いです。
調べてみると「administrator
だと意図しない動作となることがあるのでmanage_options
を使った方がよい」という意見もありました。その理由が調べてもハッキリしなかったのと、他の権限グループのユーザにもmanage_options
を追加することができるので、権限を指定した方が意図しない動作になるような気がしたので、この記事ではadministrator
を使っています。
もし詳しい方がいらっしゃったらコメントしていただけると幸いです。
関数にして使い回す
いろいろな場所でこの条件分岐を使いたい場合は次のように関数化しておきます。
function my_is_admin_user() {
return current_user_can( 'administrator' );
}
そうすると例えばGoogleAnalyticsのタグを管理者だけ表示しないということが簡単にできます。
<?php
add_action( 'wp_head', 'my_ga_tag',1);
function my_ga_tab() {
if( ! my_is_admin_user() ){
?>
アクセス解析タグ
<?php
}
}
?>
コメント
この記事へのコメントはありません。