TOKYOからOKINAWAに移住したHOMME

20代後半で思い立ったように東京から沖縄に移住したヤローの徒然+プログラム関連作業用メモ

作業用メモ:WordPressでログインしているユーザーの権限を取得するcurrent_user_can()で取得できる情報

作業用メモ

 

WordPressではログインしているユーザーの権限情報を取得することができます。
PHP
RAW
$user_authority = current_user_can( '◯◯' );

/*
◯◯は下記の中から必要な権限を指定

activate_plugins (boolean)
add_users (boolean)
create_users (boolean)
delete_others_pages (boolean)
delete_others_posts (boolean)
delete_pages (boolean)
delete_plugins (boolean)
delete_posts (boolean)
delete_private_pages (boolean)
delete_private_posts (boolean)
delete_published_pages (boolean)
delete_published_posts (boolean)
delete_themes (boolean)
delete_users (boolean)
edit_dashboard (boolean)
edit_others_pages (boolean)
edit_others_posts (boolean)
edit_pages (boolean)
edit_plugins (boolean)
edit_posts (boolean)
edit_private_pages (boolean)
edit_private_posts (boolean)
edit_published_pages (boolean)
edit_published_posts (boolean)
edit_themes (boolean)
edit_theme_options (boolean)
import (boolean)
install_plugins (boolean)
install_themes (boolean)
list_users (boolean)
manage_categories (boolean)
manage_links (boolean)
manage_options (boolean)
moderate_comments (boolean)
promote_users (boolean)
publish_pages (boolean)
publish_posts (boolean)
read (boolean)
read_private_pages (boolean)
read_private_posts (boolean)
remove_users (boolean)
switch_themes (boolean)
unfiltered_html (boolean)
unfiltered_upload (boolean)
update_core (boolean)
update_plugins (boolean)
update_themes (boolean)
upload_files (boolean)
level_10 (boolean) - deprecated
level_9 (boolean) - deprecated
level_8 (boolean) - deprecated
level_7 (boolean) - deprecated
level_6 (boolean) - deprecated
level_5 (boolean) - deprecated
level_4 (boolean) - deprecated
level_3 (boolean) - deprecated
level_2 (boolean) - deprecated
level_1 (boolean) - deprecated
level_0 (boolean) - deprecated
*/
かなりたくさんの情報が取得できますが、
わりと使いそうなものをピックアップすると、
PHP
RAW
$user_authority = current_user_can( 'manage_categories' ); //カテゴリーの管理
$user_authority = current_user_can( 'moderate_comments' ); //コメントの承認
$user_authority = current_user_can( 'manage_options' ); //設定の管理
$user_authority = current_user_can( 'edit_users' ); //ユーザの編集
$user_authority = current_user_can( 'edit_published_posts' ); //投稿された記事の編集
$user_authority = current_user_can( 'edit_others_posts' ); //他のユーザの記事の編集
$user_authority = current_user_can( 'publish_posts' ); //記事の投稿
$user_authority = current_user_can( 'edit_post' ); //記事の編集
$user_authority = current_user_can( 'edit_pages' ); //ページの編集
くらいでしょうか。

例えば、他のユーザの記事の編集ができる権限を持つユーザーにだけ特定の機能を提供したい場合は、
PHP
RAW
if ( current_user_can( 'edit_others_posts' ) ) {

//提供したい機能の処理を記述など

}
と書くと目的の処理ができると思います。

固有のユーザー情報はいらないけど権限で処理を分岐したい場合などに重宝すると思います。