私が作ったプラグインに新機能をつけたいので、勉強になる他の作者さんのプラグインのコードを眺めながら勉強しています。それで、「current_user_can」という関数があることを知りました。確実に忘れるので、早速メモメモ!
現在のユーザーの権限を確認する「current_user_can」
Codexの解説によりますと・・・
Whether the current user has a certain capability. See: Roles and Capabilities.
英文をなんとなく意訳すると・・・
現在のユーザーが特定の権限や役割を持っているかどうか確認する。権限と役割についてはページがあるから見てね
関数の英単語をそれぞれ見ていくと、どんなことができるか覚えられそうです。
- current(現在の)
- user(ユーザーの)
- can(できること)
みたいな。
サンプルコード
早速どう使えばいいのか、Codexに載っているサンプルコードを確認しました。
<?php current_user_can( $capability, $args ); ?>
設定できるパラメーター
$capability
権限と役割のページを参考にして値を入れる。
例えば「manage_options」は、WordPressの管理画面中にあるメニューの
- 設定 – 一般
- 設定 – 投稿設定
- 設定 – 表示設定
- 設定 – ディスカッション
- 設定 – パーマリンク設定
以上のページにアクセスできる権限があります。
「manage_options」がアクセスできる権限
$args(オプション)
投稿IDを指定できる。特定の投稿IDの「edit_post」や「delete_page」など、権限や役割があるかどうか、判別するのに使える。
使い方サンプル
「moderate_comments」の権限を持っているかどうかで条件分岐
if ( current_user_can('moderate_comments') ) {
echo '「moderate comments」の権限もってますよ';
}
特定の投稿ID「123」の「edit_post」の権限を持っているかどうかで条件分岐
if ( current_user_can('edit_post', 123) ) { echo 'このユーザーは投稿ID「123」の投稿の編集が可能ですよ'. }
「current_user_can」をこう使いました
というわけで、私は「current_user_can」を「特定の権限を持っている場合、DB操作や管理画面へのアクセスを許可する条件分岐」などに利用しました。
何かのご参考となりましたら幸いです。
このページを共有する