load-(pagenow)
Срабатывает при загрузке определённой страницы админки.
Это событие вызывается ДО вывода HTML страницы и подходит для выполнения кода при загрузке конкретной страницы в админке, например, проверок прав доступа, обработки отправленных форм и других подготовительных действий.
Это динамическое событие - вместо (pagenow)
подставляется значение глобальной переменной $pagenow
, соответствующее нужной странице.
Есть аналогичный хук load-(page_hook). В чем разница?
-
load-(pagenow)
— для стандартных страниц админки, страниц ядра: edit.php, post-new.php. Основан на переменной $pagenow. load-(page_hook)
— для страниц плагинов, созданных через add_menu_page() или add_submenu_page(). Основан на возвращаемом значении $hook при добавлении страницы.
Чтобы определить значение $pagenow на текущей странице, можно использовать следующий код:
die( $GLOBALS['pagenow'] );
Использование
add_action( 'load-(pagenow)', 'wp_kama_load_pagenow_action' ); /** * Function for `load-(pagenow)` action-hook. * * @return void */ function wp_kama_load_pagenow_action(){ // action... }
- $pagenow(строка)
Глобальная переменная - имя текущего PHP-файла, загружаемого в админке.
Список значений хука для разных страниц адммнки:
load-index.php
— главная страница панели управления (Dashboard)load-edit.php
— список записейload-post.php
— редактирование записиload-post-new.php
— создание новой записиload-edit-tags.php
— управление метками и рубрикамиload-upload.php
— медиафайлыload-media-new.php
— загрузка нового медиафайлаload-edit-comments.php
— комментарииload-themes.php
— темы оформленияload-customize.php
— кастомайзерload-widgets.php
— виджетыload-nav-menus.php
— меню навигацииload-plugins.php
— список плагиновload-plugin-install.php
— установка плагиновload-users.php
— список пользователейload-user-new.php
— добавление нового пользователяload-profile.php
— профиль текущего пользователяload-edit.php
— список страницload-edit.php
— список записей произвольного типаload-options-general.php
— общие настройкиload-options-writing.php
— настройки написанияload-options-reading.php
— настройки чтенияload-options-discussion.php
— настройки обсужденийload-options-media.php
— настройки медиафайловload-options-permalink.php
— настройки постоянных ссылокload-tools.php
— инструментыload-import.php
— импортload-export.php
— экспортload-admin.php
— страницы плагинов и пользовательские страницы
Примеры
#1 Обработка данных при сохранении настроек
Используется для обработки данных при отправке формы на определённой странице настроек.
add_action( 'load-options-general.php', 'handle_my_settings_save' ); function handle_my_settings_save() { if ( isset( $_POST['my_setting'] ) ) { update_option( 'my_setting', sanitize_text_field( $_POST['my_setting'] ) ); } }
#2 Регистрация скрипта только на странице редактирования записей
Подключает скрипт только при загрузке страницы редактирования записей (post.php).
add_action( 'load-post.php', 'my_admin_script_loader' ); function my_admin_script_loader() { wp_enqueue_script( 'my-script', plugin_dir_url( __FILE__ ) . 'script.js', [], '1.0', true ); }
Список изменений
С версии 2.1.0 | Введена. |
Где вызывается хук
do_action( "load-{$pagenow}" ); // phpcs:ignore WordPress.NamingConventions.ValidHookName.UseUnderscores
Где используется хук в WordPress
add_action( 'load-plugins.php', 'wp_plugin_update_rows', 20 ); // After wp_update_plugins() is called.
add_action( 'load-themes.php', 'wp_theme_update_rows', 20 ); // After wp_update_themes() is called.
add_action( "load-{$page}", array( $this, 'admin_load' ) );
add_action( "load-{$page}", array( $this, 'take_action' ), 49 );
add_action( "load-{$page}", array( $this, 'handle_upload' ), 49 );
add_action( 'load-plugins.php', 'wp_update_plugins' );
add_action( 'load-update.php', 'wp_update_plugins' );
add_action( 'load-update-core.php', 'wp_update_plugins' );
add_action( 'load-themes.php', 'wp_update_themes' );
add_action( 'load-update.php', 'wp_update_themes' );
add_action( 'load-update-core.php', 'wp_update_themes' );