Функция wp_get_current_user()
позволяет получить информацию о текущем пользователе в виде объекта WP_User
.
wp_get_current_user()
Аргументы отсутствуют.
Возвращает объект WP_User
, если пользователь авторизован (вошёл в систему). Если пользователь не авторизован, то функция автоматически установит ID пользователя равное 0 и вернёт пустой объект. Проверить, авторизован пользователь или нет, можно при помощи функции is_user_logged_in().
Пример возвращаемого объекта WP_User для администратора:
WP_User Object ( [data] => stdClass Object ( [ID] => 1 [user_login] => admin [user_pass] => $P$BMoN3hwygEeQhe6xS234ReDeMbDd3lA0 [user_nicename] => admin [user_email] => no-reply@misha.blog [user_url] => http://misha.blog [user_registered] => 2020-06-20 16:18:22 [user_activation_key] => [user_status] => 0 [display_name] => admin ) [ID] => 1 [caps] => Array ( [administrator] => 1 ) [cap_key] => wp_capabilities [roles] => Array ( [0] => administrator ) [allcaps] => Array ( [switch_themes] => 1 [edit_themes] => 1 [activate_plugins] => 1 [edit_plugins] => 1 [edit_users] => 1 [edit_files] => 1 [manage_options] => 1 [moderate_comments] => 1 [manage_categories] => 1 [manage_links] => 1 [upload_files] => 1 [import] => 1 [unfiltered_html] => 1 [edit_posts] => 1 [edit_others_posts] => 1 [edit_published_posts] => 1 [publish_posts] => 1 [edit_pages] => 1 [read] => 1 [level_10] => 1 [level_9] => 1 [level_8] => 1 [level_7] => 1 [level_6] => 1 [level_5] => 1 [level_4] => 1 [level_3] => 1 [level_2] => 1 [level_1] => 1 [level_0] => 1 [edit_others_pages] => 1 [edit_published_pages] => 1 [publish_pages] => 1 [delete_pages] => 1 [delete_others_pages] => 1 [delete_published_pages] => 1 [delete_posts] => 1 [delete_others_posts] => 1 [delete_published_posts] => 1 [delete_private_posts] => 1 [edit_private_posts] => 1 [read_private_posts] => 1 [delete_private_pages] => 1 [edit_private_pages] => 1 [read_private_pages] => 1 [delete_users] => 1 [create_users] => 1 [unfiltered_upload] => 1 [edit_dashboard] => 1 [update_plugins] => 1 [delete_plugins] => 1 [install_plugins] => 1 [update_themes] => 1 [install_themes] => 1 [update_core] => 1 [list_users] => 1 [remove_users] => 1 [promote_users] => 1 [edit_theme_options] => 1 [delete_themes] => 1 [export] => 1 [administrator] => 1 ) [filter] => [site_id:WP_User:private] => 1 )
Пример 1
Первый пример будет из урока Комментарии видеокурса Создание темы WordPress.
$current_user = wp_get_current_user(); // получили объект с данными текущего авторизованного пользователя echo '<p>Вы вошли как' . $current_user->display_name . '.</p>'; // получим <p>Вы вошли как admin.</p>
Пример 2
Мы можем получить все права (capabilities) текущего пользователя. По умолчанию все права различаются в зависимости от роли пользователя. Можно конечно проверить определенное право с помощью функции current_user_can(), но лучше распечатать все текущие права пользователя для наглядности.
echo '<pre>'; // используем тег pre, чтобы получить читаемый код print_r( wp_get_current_user()->allcaps );
Текущий пользователь имеет роль подписчик и мы получим следующий массив данных с его правами.
Array ( [read] => 1 [level_0] => 1 [subscriber] => 1 )
Если хотите посмотреть все права администратора, то они приведены выше, в примере возвращаемого объекта.