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 только администратору.

  • Привет, скажи пожалуйста на счет плагина qtranslate, никак не могу решить, уже очень долго не могу найти решение. Я не могу перевести некоторые плагины на два языка, у меня по умолчанию английский и все плагины по английски. Как перевести на два языка любой плагин? по разному пробовал, может что-то я пропустил?

    • admin

      для этого Qtranslate не нужен!

      Нужно создать несколько языковых файлов, и смотреть на язык WordPress, исходя из него подключать нужный язык плагина.

      Посмотри к примеру All in One SEO Pack, там реализован такой функционал!