久しぶりに調べて学びになったのでまとめておこうと思います。
WordPress のテーマやプラグインを開発する際に、ログインしているユーザーの権限(やその内容)次第で分岐させたい時もあるでしょう。
その際には current_user_can
を使います。
記述例
<?php
if ( current_user_can( 'administrator` ) ) {
echo '管理者権限だよ!';
}
$capability の探し方
上のサンプルでは administrator
と入っていますが、ここに権限名を入れたり、役割を入れたりすることで分岐をすることができます。
権限名や役割をどう調べたら良いかというと、WordPress コアのwp-admin/includes/schema.php
ファイルの中で調べることができます。
719行目くらいにこのような記述があります。
<?php
function populate_roles_160() {
// Add roles.
add_role( 'administrator', 'Administrator' );
add_role( 'editor', 'Editor' );
add_role( 'author', 'Author' );
add_role( 'contributor', 'Contributor' );
add_role( 'subscriber', 'Subscriber' );
ここで権限を設定しています。この第1引数を上記サンプルで設置して分岐しているということですね。
他に役割というのがどういうものがあるのかというと、schema.php
のファイル内で「add_cap(
」を検索してみてください。ここで設定しているものが役割になります。例えば、727行目あたりで、
<?php
$role = get_role( 'administrator' );
$role->add_cap( 'switch_themes' );
という記述がありますが、ここでは管理者権限 administrator
に対してswitch_themes
という役割を追加している処理になります。
詳しくは以下の資料を読んでみると、より深く理解することができるかと思います。