WordPress как на ладони
Мощный и не дорогой хостинг от Fornex.com

current_screen хук-событие . WP 3.0

Хук-событие админ-панели, которое происходит, когда установлены необходимые элементы для идентификации текущего экрана. В качестве параметра передает объект WP_Screen.

Этот хук может понадобится всякий раз когда нужно сделать, какое либо действие только для конкретной страницы админки. Например, нужно подключить свой скрипт и сделать это нужно только на странице редактирования поста или на странице создаваемого плагина.

Использование

add_action( 'current_screen', 'action_function_name_9874' );
function action_function_name_9874( $current_screen ) {
	// Действие...
}
$current_screen(объект)
Объект - экземпляр класса WP_Screen, который содержит в себе массив данных о текущем экране.

Параметр $current_screen

В событие в параметре $current_screen передается экземпляр класса WP_Screen. Этот пример показывает какие данные передаются в $current_screen на странице редактирования записи (post.php):

WP_Screen Object
(
	[action] => 
	[base] => post
	[columns:WP_Screen:private] => 0
	[id] => post
	[in_admin:protected] => site
	[is_network] => 
	[is_user] => 
	[parent_base] => 
	[parent_file] => 
	[post_type] => post
	[taxonomy] => 
	[_help_tabs:WP_Screen:private] => Array
		(
		)

	[_help_sidebar:WP_Screen:private] => 
	[_options:WP_Screen:private] => Array
		(
		)

	[_show_screen_options:WP_Screen:private] => 
	[_screen_settings:WP_Screen:private] => 
)

Теперь, для сравнения, посмотрим какие данные передаются на странице списка рубрик:

WP_Screen Object
(
	[action] => 
	[base] => edit-tags
	[columns:WP_Screen:private] => 0
	[id] => edit-category
	[in_admin:protected] => site
	[is_network] => 
	[is_user] => 
	[parent_base] => 
	[parent_file] => 
	[post_type] => post
	[taxonomy] => category
	[_help_tabs:WP_Screen:private] => Array
		(
		)

	[_help_sidebar:WP_Screen:private] => 
	[_options:WP_Screen:private] => Array
		(
		)

	[_show_screen_options:WP_Screen:private] => 
	[_screen_settings:WP_Screen:private] => 
)

Примеры

#1 Пример использования

Предположим у нас есть произвольный тип записи book и нам нужно что-то сделать на странице этого типа записи в админ-панели:

add_action( 'current_screen', 'current_screen_hook' );
function current_screen_hook( $current_screen ){
	if ( 'book' == $current_screen->post_type && 'post' == $current_screen->base ) {
		// Делаем что-либо на странице редактирования записи типа book
	}
}

#2 Добавляем фильтры только на странице списка таксономий

Этот пример показывает как подключить фильтр на страницы списков таксономий (это список рубрик, меток и т.д.) в админ-панели. Этот пример выведет произвольный текст в подвале админ-панели, только на страница списков таксономий:

add_action( 'current_screen', 'kkk_my_func' );
function kkk_my_func( $current_screen ){
	if( 'edit-tags' != $current_screen->base )
		return;

	add_action('admin_footer_text', 'my_admin_footer_function_name');
}

function my_admin_foofter_function_name(){
	echo "Это страница списка таксономий.";
}

Где вызывается хук

WP_Screen::set_current_screen()
current_screen
wp-admin/includes/class-wp-screen.php 386
do_action( 'current_screen', $current_screen );

Где используется хук (в ядре WP)

Не используется.
Комментариев нет
    Здравствуйте, !     Войти . Зарегистрироваться