get_current_screen()

Владислав Белецкий
Владислав Белецкий .
Категория:
Комментариев: 0

Позволяет получить информацию о текущей странице в админке.

Также вернёт 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>';
 
}
Подписаться
Уведомить о
guest
0 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии