current_screen
Хук-событие админ-панели, которое происходит, когда установлены необходимые элементы для идентификации текущего экрана. В качестве параметра передает объект 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 "Это страница списка таксономий."; }
Список изменений
С версии 3.0.0 | Введена. |
Где вызывается хук
do_action( 'current_screen', $current_screen );