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

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

参考

出版書籍一覧

WordPress 7.0.x 対応
いちばんわかりやすいWordPressの本

WordPress 6.9.x 対応
いちばんわかりやすいWordPressの本

WordPress 6.7.x 対応
Twenty Twenty-Fourでウェブサイトを作ろう

WordPress 6.4.x 対応 Twenty Twenty-Four でウェブサイトを作ろう

WordPress 6.4.x 対応
Twenty Twenty-Fourでウェブサイトを作ろう

Udemy 新着・人気 講座

いちばんやさしいWordPress入門講座
【ゼロから学べる基礎】

以下のリンクから常に最安値で購入できるものを選んでお求めいただけます。

Udemy 新規 講座

いちばんやさしい Snow Monkey 講座 – 基礎編 –

以下のリンクから常に最安値で購入できるものを選んでお求めいただけます。

Udemy 新規 講座

いちばんやさしい Snow Monkey 講座 – 応用編 –

以下のリンクから常に最安値で購入できるものを選んでお求めいただけます。

コーディングや
WordPress開発のリソースが足りない!

オレインデザインでは、デザインデータからの HTML コーディングや WordPress テーマ・プラグイン開発まで幅広くウェブ制作に対応しています。

ご相談は無料です。お気軽にお問い合わせください。