Snow Monkey Expertに認定されました!

Snow Monkeyコミュニティへの貢献やプロダクトの理解など総合的に判断いただき、公式にSnow Monkey エキスパートとして認定いただきました。

Snow Monkeyを活用したウェブサイト制作や利用方法などのレクチャーなど、なんでもご相談ください!

エキスパートを見る 相談してみる

Snow Monkey Expert mark

[WordPress] current_user_can を使ってユーザー権限ごとに条件分岐をする方法

  • ブックマーク
  • -
    コピー

久しぶりに調べて学びになったのでまとめておこうと思います。

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という役割を追加している処理になります。

詳しくは以下の資料を読んでみると、より深く理解することができるかと思います。

参考

お客様の声

オレインデザインにご依頼いただいたお客様(個人・法人含む)からの声を紹介しています。

  • ブックマーク
  • -
    コピー