Если администратор авторизован

2 авг. 2013 г., 19:46:29
Просмотры: 43K
Голосов: 12

Мы знаем, что is_admin() проверяет, принадлежит ли текущий URL к ПАНЕЛИ УПРАВЛЕНИЯ (НО она НЕ проверяет, является ли пользователь АДМИНИСТРАТОРОМ).

Поэтому я использую эту функцию для определения, авторизован ли администратор в WordPress:

function is_admin_user(){
  require_once(ABSPATH.'wp-includes/pluggable.php'); return current_user_can('create_users'); //или 'manage_options'
}

однако, это не идеальное решение. Существует ли встроенная функция, наподобие wp_is_administrator()?

2
Комментарии

if(current_user_can('administrator'))

Howdy_McGee Howdy_McGee
2 авг. 2013 г. 20:06:25

Ваш код предполагает, что вы используете какую-то загрузочную систему (bootstrap) для загрузки функций WP вне WordPress, но даже в этом случае вы можете использовать то, что сказал Howdy_McGee -> см. документацию

JMau JMau
2 авг. 2013 г. 20:19:45
Все ответы на вопрос 2
0
25

current_user_can принимает имя роли, но, к сожалению, поведение с ролями не совсем последовательно.

Следующий код должен работать и немного проще того, что у вас есть.

$current_user = wp_get_current_user();
if (user_can( $current_user, 'administrator' )) {
  // пользователь является администратором
}
2 авг. 2013 г. 21:41:36
0
10

Кажется, что самым простым способом действительно будет использование current_user_can следующим образом:

if( current_user_can( 'administrator' ) ){} // только для администратора

Похоже, это дубликат.

13 февр. 2019 г. 22:16:37