WordPress. Как проверить, залогинен ли пользователь, и является ли он администратором на сайте.

Wordpress - авторизован ли пользователь

И вновь здравствуйте уважаемые читатели моего блога.

Сегодня я расскажу вам, как узнать, является ли посетитель гостем, либо он зарегистрирован и авторизован на сайте.
В версии WordPress 2.0 разработчики перешли от простой системы уровней пользователей, к модели разграничений прав доступа и ролей пользователей. В этой новой модели, возможности предоставляются ролями и пользователи являются членами роли. Кроме того, возможности, отличные от возможностей роли, могут быть предоставлены пользователю непосредственно администратором, с помощью специального плагина. Эта модель является расширяемой, гибкой и настраиваемой.

Все способы поднятия тИЦ вы найдете по этой ссылке.

Проверка, залогинен ли пользователь на сайте

Для того что-бы проверить, залогинен ли пользователь на сайте, необходимо использовать стандартную WordPress функцию is_user_logged_in(), которая возвращает true, если пользователь авторизован на сайте.
Пример:

if ( is_user_logged_in() ){
  // что-то сделать
  echo 'Вы сейчас авторизованы на сайте!';
} else {
  echo 'Вы не вошли на сайт!';
}

Является ли авторизованный пользователь администратором в WordPress

Теперь нам необходимо узнать является ли пользователь администратором. Для этого есть несколько путей:

  • вызов функции current_user_can() передав в качестве параметра ‘administrator’ (этот варинат используется в документации по WordPress — http://codex.wordpress.org/Editing_wp-config.php#Save_queries_for_analysis).
     current_user_can('administrator') 
  • вызов функции current_user_can() передав в качестве параметра ‘manage_options’ (параметр ‘manage_options’ значит что уровень пользователя >=8, то есть пользователь является администратором)
     current_user_can('manage_options') 

Всего существует 10 уровней пользователей, с которыми вы можете ознакомиться здесь — WordPress. Роли и права пользователей. Соответствия уровней пользователей ролям.

Мне больше нравиться пераметр ‘administrator’, так что я использую его для определения прав.

Дополним предыдущий код, и получим:

if ( is_user_logged_in() && current_user_can('administrator') ){
  // что-то сделать
  echo 'Вы сейчас авторизованы на сайте как администратор!';
} else {
  echo 'Вы не вошли на сайт!';
}

Теперь вы точно знаете, кто вошёл на ваш сайт, и можете вывести какую-либо информацию для администратора(к примеру количество непроверенных комментариев).
форма авторизации wordpress


А я советую вам почитать статью — как вывести количество запросов, и использование памяти сервера вашим блогом на WordPress только администратору.