Позволяет получить информацию о текущей странице в админке.
Также вернёт null
при использовании внутри AJAX-запроса.
get_current_screen()
Также обратите внимание, на то, где использовать эту функцию. Глобальный объект $current_screen
становится доступным только во время выполнения хука current_screen
в админке, т.е. на admin_init
или admin_menu
она работать не будет (так как они выполняются раньше current_screen
), но будет прекрасно работать на load-{хук}
, admin_enqueue_scripts
, admin_head
, admin_notices
и так далее, подробнее – в примерах.
Объект WP_Screen
Объект WP_Screen
обладает следующими свойствами:
Использование на странице Консоль:
print_r( get_current_screen() ); /* WP_Screen Object ( [action] => [base] => dashboard [id] => dashboard [is_network] => [is_user] => [parent_base] => [parent_file] => [post_type] => [taxonomy] => [is_block_editor] => ... (private fields) ) */
Страница редактирование определённой записи:
print_r( get_current_screen() ); /* WP_Screen Object ( [action] => [base] => post [id] => post [is_network] => [is_user] => [parent_base] => [parent_file] => [post_type] => post [taxonomy] => [is_block_editor] => 1 ... (private fields) ) */
Страница редактирования страницы:
print_r( get_current_screen() ); /* WP_Screen Object ( [action] => [base] => post [id] => page [is_network] => [is_user] => [parent_base] => [parent_file] => [post_type] => page [taxonomy] => [is_block_editor] => ... (private fields) ) */
Страница Настройки > Общее.
print_r( get_current_screen() ); /* WP_Screen Object ( [action] => [base] => options-general [id] => options-general [is_network] => [is_user] => [parent_base] => [parent_file] => [post_type] => [taxonomy] => ... (private fields) ) */
Таблица стандартных экранов
Решил сделать табличку с id
стандартных экранов в WordPress, потому чаще всего приходится использовать именно id
.
Для консоли управления сетью в сети мультисайт:
Примеры
1. Выводим всю информацию об экране
Будьте осторожны с этим кодом – используйте только на тестовом сайте, потому страницы в админке открывать перестанут – на них будет выводиться только информация об экране.
add_action( 'current_screen', 'true_print_screen_info' ); function true_print_screen_info() { $screen = get_current_screen(); print_r( $screen ); exit; }
2. CSS и JS только для определённой страницы в админки
Попробуйте вставить этот код (надеюсь, вы знаете, куда) и перейти на страницу Консоль – Обновления.
// какой-то произвольный CSS для страницы Консоль – Обновления add_action( 'admin_head', 'true_admin_css', 25 ); function true_admin_css() { $screen = get_current_screen(); if( 'update-core' === $screen->id ) { echo '<style>body{ background-color: #000 }</style>'; } } // какой-то произвольный JS для страницы Консоль – Обновления add_filter( 'admin_footer', 'true_admin_js', 25 ); function true_admin_js(){ // условие можно записать ещё и так $screen = get_current_screen() if( 'update-core' !== $screen->id ) { return; } echo '<script>alert( 'привет')</script>'; }