load-(plugin_page)
Срабатывает при загрузке страницы админки плагина (используется редко).
Позволяет выполнять определённые действия в момент загрузки конкретной страницы настроек плагина в админке WordPress.
(plugin_page) в имени хука нужно заменить на конкретное значение идентификатора страницы, например load-myplugin.
(plugin_page) — это ярлык текущей admin-страницы плагина - значение параметра $_GET['page']. Это значение параметра $menu_slug из add_menu_page() / add_submenu_page().
Обычно вместо этого хука вам нужен другой хук - load-(page_hook) — хук для страниц плагинов, созданных через add_menu_page() или add_submenu_page().
Этот хук сработает вместо load-(page_hook), только если НЕ определиться $page_hook - функци get_plugin_page_hook() вернет falsy:
$page_hook = get_plugin_page_hook( $_GET['page'], $pagenow ); // или $page_hook = get_plugin_page_hook( $_GET['page'], $_GET['page'] );
Про аналогичный хук load-(pagenow).
Этот хук используйтеся в редких случаях для страниц плагинов. Но, если текущая страница админки - это страница ядра (а не кастомная), то на такой странице этот хук не сработает, а сработает аналогичных хук load-(pagenow). Где $pagenow - глобальная переменная, хранит название текущего php файла, например: 'post-new.php', 'admin.php'.
Использование
add_action( 'load-(plugin_page)', 'wp_kama_load_plugin_page_action' );
/**
* Function for `load-(plugin_page)` action-hook.
*
* @return void
*/
function wp_kama_load_plugin_page_action(){
// action...
}
Примеры
#1 Подключение скриптов только на странице настроек плагина
Этот пример подключает JavaScript файл только на странице плагина.
add_action( 'load-myplugin', 'my_plugin_admin_assets' );
function my_plugin_admin_assets() {
add_action( 'admin_enqueue_scripts', function() {
wp_enqueue_script( 'my-plugin-js', plugin_dir_url( __FILE__ ) . 'assets/admin.js', [], '1.0', true );
} );
}
Список изменений
| С версии 1.5.0 | Введена. |
Где вызывается хук
do_action( "load-{$plugin_page}" ); // 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' );