Как проверить, что в данный момент в Wordpress Admin?

30

Я создаю свой первый плагин и имею единственную функцию, которая управляет выходом. Эта функция имеет разные выходные данные в зависимости от того, просматривается ли она внутри администратора WordPress или внешнего интерфейса. Есть ли способ легко проверить, запускается ли моя функция внутри admin и frontend?

Я пробовал условно проверять строку запроса на имя имени моей "плагина", но, похоже, на некоторых серверах/установках не работает.

Спасибо

Теги:
admin
wordpress-plugin

5 ответов

56
Лучший ответ

Дух, это было слишком очевидно. По какой-то причине я думал, что это связано с пользователем администратора. if(is_admin()) { ...output my admin stuff....}

http://codex.wordpress.org/Function_Reference/is_admin

  • 0
    Вы можете пометить свой ответ как принятый. :)
  • 0
    Мне нужно было то же самое. Я влюбился в то же самое.
Показать ещё 3 комментария
19

Если вы хотите узнать, есть ли текущий пользователь IS ADIN, то вы должны использовать это:

   $is_admin = current_user_can( 'manage_options' );

Я получил ошибочный ответ из приведенного выше ответа, поэтому небольшое примечание, чтобы другие не совершали ту же ошибку.

  • 0
    Да, я думаю, что это правильное решение, которое даже Wordpress Support подавляет.
  • 2
    Если вы не работаете с текущим пользователем, вы можете использовать user_can (1, manage_options), где «1» - это идентификатор пользователя. Опять же, как и в случае с current_user_can (), это не имеет ничего общего с проверкой, просматривает ли пользователь страницу администрирования.
12

Обратите внимание, что is_admin() работает только в бэкэнд. Для любой части плагина, который отображается на общедоступном веб-сайте, вам нужно использовать current_user_can().

if ( current_user_can( 'administrator' ) ) {
  // your code goes here
}
0

См. Is_admin_request() для рабочего решения.

-4
<?php 
global $current_user;
get_currentuserinfo();
$user_id = $current_user->ID

//usually admin user id is 1 if its not working check admin user id from wp_users table
if($user_id == 1) {
   //write your stuff
}
?>
  • 2
    Я думаю, что current_user_can (), вероятно, является более эффективным методом, возможно, не стоит проверять глобальные переменные WordPress.
  • 2
    Поправь Брайана. Мы никогда не должны предполагать, что идентификатор пользователя - это определенный пользователь, не говоря уже об администраторе.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню