load-(plugin_page)хук-событиеWP 1.5.0

Срабатывает при загрузке страницы админки плагина (используется редко).

Позволяет выполнять определённые действия в момент загрузки конкретной страницы настроек плагина в админке 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...
}

Примеры

0

#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 Введена.

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

В файле: /wp-admin/admin.php
load-(plugin_page)
wp-admin/admin.php 289
do_action( "load-{$plugin_page}" ); // phpcs:ignore WordPress.NamingConventions.ValidHookName.UseUnderscores

Где используется хук в WordPress

wp-admin/includes/admin-filters.php 130
add_action( 'load-plugins.php', 'wp_plugin_update_rows', 20 ); // After wp_update_plugins() is called.
wp-admin/includes/admin-filters.php 131
add_action( 'load-themes.php', 'wp_theme_update_rows', 20 ); // After wp_update_themes() is called.
wp-admin/includes/class-custom-background.php 81
add_action( "load-{$page}", array( $this, 'admin_load' ) );
wp-admin/includes/class-custom-background.php 82
add_action( "load-{$page}", array( $this, 'take_action' ), 49 );
wp-admin/includes/class-custom-background.php 83
add_action( "load-{$page}", array( $this, 'handle_upload' ), 49 );
wp-includes/update.php 1194
add_action( 'load-plugins.php', 'wp_update_plugins' );
wp-includes/update.php 1195
add_action( 'load-update.php', 'wp_update_plugins' );
wp-includes/update.php 1196
add_action( 'load-update-core.php', 'wp_update_plugins' );
wp-includes/update.php 1200
add_action( 'load-themes.php', 'wp_update_themes' );
wp-includes/update.php 1201
add_action( 'load-update.php', 'wp_update_themes' );
wp-includes/update.php 1202
add_action( 'load-update-core.php', 'wp_update_themes' );