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' );