Как проверить находится ли пользователь в панели администратора?

13 мар. 2012 г., 07:27:36
Просмотры: 40.4K
Голосов: 22

В моем приложении есть форма. Я хочу отображать заголовок, если пользователь находится во фронтенде, но если он в бэкенде (админ-панели), я не хочу его показывать.

Я не хочу выполнять проверку на основе роли пользователя.

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

Этот ответ, кажется, соответствует вашему вопросу: https://wordpress.stackexchange.com/a/343592/43252

MastaBaba MastaBaba
5 мар. 2023 г. 20:03:00
Все ответы на вопрос 2
6
36

Используйте is_admin(). Эта функция проверяет, находитесь ли вы на странице админки (бэкенда).

13 мар. 2012 г. 07:41:23
Комментарии

Будет ли это работать для других пользователей, например, подписчиков?

Ajay Patel Ajay Patel
13 мар. 2012 г. 07:42:00

Да. Работает для всех ролей.

Rutwick Gangurde Rutwick Gangurde
13 мар. 2012 г. 07:42:42

Как насчет загрузки скрипта на определенной странице админки?

AlxVallejo AlxVallejo
27 дек. 2012 г. 03:01:55

Хук действия admin_print_scripts предназначен именно для этого.

Rutwick Gangurde Rutwick Gangurde
27 дек. 2012 г. 07:09:48

Стоит отметить, что AJAX-запрос приведёт к тому, что эта функция вернёт TRUE.

Также прямо в документации сказано, что эта функция не предназначена для проверки безопасности.

Rebecca Dessonville Rebecca Dessonville
12 дек. 2017 г. 18:54:45

Это больше не применимо к WordPress после выхода Gutenberg. Теперь все экраны, использующие Gutenberg, будут возвращать false при проверке is_admin. То же самое в Настройщике. А также при выполнении AJAX-запросов. is_admin — вводящая в заблуждение и неправильно используемая функция. Вы не можете использовать её для надёжной проверки, находитесь ли вы в админ-панели. Также вы не можете использовать её для проверки, находитесь ли вы на фронтенде, потому что во время AJAX-запроса эта функция вернёт true, так как по определению функция Определяет, является ли текущий запрос страницей административного интерфейса. Это верно для AJAX-запроса.

User User
23 авг. 2021 г. 08:23:07
Показать остальные 1 комментариев
3
20

Используйте is_admin() для проверки, является ли текущая страница административной. Несмотря на название, это не проверка роли пользователя. Функция всегда возвращает FALSE на фронтенде, независимо от роли пользователя.

13 мар. 2012 г. 07:40:16
Комментарии

Ложь, с тех пор как паршивый редактор блоков был впихнут сообществу WP: https://core.trac.wordpress.org/ticket/47394 С тех пор вы не можете больше безопасно определить, находитесь ли вы в админке или на фронтенде.

User User
3 мар. 2023 г. 10:36:54

@BedaSchmid - Какая альтернатива is_admin?

Motivated Motivated
28 июн. 2023 г. 11:08:19

@Motivated альтернативы нет. Теперь вам нужно делать КУЧУ проверок: является ли это AJAX-событием, является ли это определенным экраном, относится ли это к редактированию блоков, залогинен ли пользователь, имеет ли пользователь права... и т.д. В плане безопасности ничего не изменилось, так как is_admin НЕ проверяет, является ли пользователь администратором, но по крайней мере он мог сообщить, находимся ли мы в админке (за исключением AJAX-запросов, где is_admin всегда true). Анекдот в том, что редакторы блоков говорят is_admin FALSE, потому что они работают не в "бэкенде", а через REST.

User User
29 июн. 2023 г. 04:30:37