ログインユーザー情報を取得する方法や、ユーザーロールの追加方法など紹介します。
目次
ログインしているユーザー情報を取得
ログインしているユーザー情報を取得するには、wp_get_current_user関数
を使います。
$current_user = wp_get_current_user();
var_dump($current_user);
object(WP_User)[139]
public 'data' =>
object(stdClass)[138]
public 'ID' => int 0
public 'caps' =>
array (size=0)
empty
public 'cap_key' => null
public 'roles' =>
array (size=0)
empty
public 'allcaps' =>
array (size=0)
empty
public 'filter' => null
object(WP_User)[106]
public 'data' =>
object(stdClass)[137]
public 'ID' => string '1' (length=1)
public 'user_login' => string 'XXXXXXXX' (length=8)
public 'user_pass' => string 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' (length=34)
public 'user_nicename' => string 'XXXXXXXX' (length=8)
public 'user_email' => string 'XXX@XXXXXXXX.XXX' (length=16)
public 'user_url' => string '' (length=0)
public 'user_registered' => string '2015-07-31 13:43:08' (length=19)
public 'user_activation_key' => string '' (length=0)
public 'user_status' => string '0' (length=1)
public 'display_name' => string 'XXXXXXXX' (length=8)
public 'ID' => int 1
public 'caps' =>
array (size=1)
'administrator' => boolean true
public 'cap_key' => string 'wp_capabilities' (length=15)
public 'roles' =>
array (size=1)
0 => string 'administrator' (length=13)
public 'allcaps' =>
array (size=63)
'switch_themes' => boolean true
'edit_themes' => boolean true
'activate_plugins' => boolean true
'edit_plugins' => boolean true
'edit_users' => boolean true
'edit_files' => boolean true
'manage_options' => boolean true
'moderate_comments' => boolean true
'manage_categories' => boolean true
'manage_links' => boolean true
'upload_files' => boolean true
'import' => boolean true
'unfiltered_html' => boolean true
'edit_posts' => boolean true
'edit_others_posts' => boolean true
'edit_published_posts' => boolean true
'publish_posts' => boolean true
'edit_pages' => boolean true
'read' => boolean true
'level_10' => boolean true
'level_9' => boolean true
'level_8' => boolean true
'level_7' => boolean true
'level_6' => boolean true
'level_5' => boolean true
'level_4' => boolean true
'level_3' => boolean true
'level_2' => boolean true
'level_1' => boolean true
'level_0' => boolean true
'edit_others_pages' => boolean true
'edit_published_pages' => boolean true
'publish_pages' => boolean true
'delete_pages' => boolean true
'delete_others_pages' => boolean true
'delete_published_pages' => boolean true
'delete_posts' => boolean true
'delete_others_posts' => boolean true
'delete_published_posts' => boolean true
'delete_private_posts' => boolean true
'edit_private_posts' => boolean true
'read_private_posts' => boolean true
'delete_private_pages' => boolean true
'edit_private_pages' => boolean true
'read_private_pages' => boolean true
'delete_users' => boolean true
'create_users' => boolean true
'unfiltered_upload' => boolean true
'edit_dashboard' => boolean true
'update_plugins' => boolean true
'delete_plugins' => boolean true
'install_plugins' => boolean true
'update_themes' => boolean true
'install_themes' => boolean true
'update_core' => boolean true
'list_users' => boolean true
'remove_users' => boolean true
'add_users' => boolean true
'promote_users' => boolean true
'edit_theme_options' => boolean true
'delete_themes' => boolean true
'export' => boolean true
'administrator' => boolean true
public 'filter' => null
ログインしている場合に、ユーザー情報が設定されています。ちなみに、現在の訪問者がログインしているかチェックするには、is_user_logged_in関数
を使います。
<?php if ( is_user_logged_in() ) { ... } ?>
ユーザーロールと権限
WordPressのデフォルトのユーザーロール(権限グループ)と権限については、「ユーザーの種類と権限 – WordPress Codex 日本語版 – OSDN」で確認することができます。
次のソースで、ユーザーロールの追加方法について確認します。
$capabilities = array(
'read' => true,
'edit_posts' => true,
'testcap1' => true
);
add_role("testrole", "test", $capabilities);
$role = get_role('testrole');
var_dump($role);
$role->add_cap('testcap2');
var_dump($role);
remove_role('testrole');
- 6行目
- ユーザーロールを追加しています。「ロール名」、「管理画面での表示名」、「権限」を引数に指定します。
- 8行目
- ユーザーロール情報を取得しています。
- 11行目
- 取得したユーザーロール情報に権限を追加しています。
- 14行目
- ユーザーロール情報を削除しています。アプリ開発をする際、不要な既存のユーザロールを削除するときなどに利用します。
上記ソースの出力結果は次のようになります。
object(WP_Role)[4]
public 'name' => string 'testrole' (length=8)
public 'capabilities' =>
array (size=3)
'read' => boolean true
'edit_posts' => boolean true
'testcap1' => boolean true
object(WP_Role)[4]
public 'name' => string 'testrole' (length=8)
public 'capabilities' =>
array (size=4)
'read' => boolean true
'edit_posts' => boolean true
'testcap1' => boolean true
'testcap2' => boolean true
なお、ユーザーロールの追加は1度実行すればいい処理なので、プラグイン有効化のタイミングが適しています。