load-(pagenow)хук-событиеWP 2.1.0

Срабатывает при загрузке определённой страницы админки.

Это событие вызывается ДО вывода 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 — страницы плагинов и пользовательские страницы

Примеры

0

#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'] ) );
	}
}
0

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

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

В файле: /wp-admin/admin.php
load-(pagenow)
wp-admin/admin.php 386
do_action( "load-{$pagenow}" ); // 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 1165
add_action( 'load-plugins.php', 'wp_update_plugins' );
wp-includes/update.php 1166
add_action( 'load-update.php', 'wp_update_plugins' );
wp-includes/update.php 1167
add_action( 'load-update-core.php', 'wp_update_plugins' );
wp-includes/update.php 1171
add_action( 'load-themes.php', 'wp_update_themes' );
wp-includes/update.php 1172
add_action( 'load-update.php', 'wp_update_themes' );
wp-includes/update.php 1173
add_action( 'load-update-core.php', 'wp_update_themes' );