admin_init
Срабатывает при инициализации админ-экрана или служебного запроса WordPress (ajax).
Событие вызывается не только на страницах админки, но также в admin-ajax.php и admin-post.php.
Общее событие init срабатывает раньше.
admin_init может сработать для неавторизованного AJAX- или admin-post.php-запроса. Для защищённых операций отдельно проверяйте права пользователя и nonce.
Текущий админ-экран устанавливается после admin_init.
Если нужен объект экрана, используйте событие current_screen или динамическое событие load-{page_hook}.
Использование
add_action( 'admin_init', 'wp_kama_admin_init_action' );
/**
* Function for `admin_init` action-hook.
*
* @return void
*/
function wp_kama_admin_init_action(){
// action...
}
Примеры
#1 Регистрация настройки плагина
Зарегистрируем числовую опцию через Settings API.
add_action( 'admin_init', 'wp_kama_register_settings' );
function wp_kama_register_settings() {
register_setting(
'wp_kama_settings',
'wp_kama_items_per_page',
[
'type' => 'integer',
'sanitize_callback' => 'absint',
'default' => 10,
]
);
}Список изменений
| С версии 2.5.0 | Введена. |
Где вызывается хук
В файле: /wp-admin/admin.php
admin_init
wp-admin/admin.php 180
do_action( 'admin_init' );
wp-admin/admin-ajax.php 45
do_action( 'admin_init' );
wp-admin/admin-post.php 27
do_action( 'admin_init' );
Где используется хук в WordPress
wp-admin/includes/admin-filters.php 120
add_action( 'admin_init', 'default_password_nag_handler' );
wp-admin/includes/admin-filters.php 158
add_action( 'admin_init', array( 'WP_Privacy_Policy_Content', 'text_change_check' ), 100 );
wp-admin/includes/admin-filters.php 164
add_action( 'admin_init', array( 'WP_Privacy_Policy_Content', 'add_suggested_content' ), 1 );
wp-admin/includes/admin-filters.php 41
add_action( 'admin_init', 'register_admin_color_schemes', 1 );
wp-admin/includes/admin-filters.php 46
add_action( 'admin_init', 'wp_admin_headers' );
wp-admin/includes/admin-filters.php 47
add_action( 'admin_init', 'send_frame_options_header', 10, 0 );
wp-includes/blocks/legacy-widget.php 157
add_action( 'admin_init', 'handle_legacy_widget_preview_iframe', 20 );
wp-includes/build/pages/font-library/page.php 335
add_action( 'admin_init', 'wp_font_library_intercept_render' );
wp-includes/build/pages/options-connectors/page.php 335
add_action( 'admin_init', 'wp_options_connectors_intercept_render' );
wp-includes/class-wp-customize-manager.php 381
remove_action( 'admin_init', '_maybe_update_core' );
wp-includes/class-wp-customize-manager.php 382
remove_action( 'admin_init', '_maybe_update_plugins' );
wp-includes/class-wp-customize-manager.php 383
remove_action( 'admin_init', '_maybe_update_themes' );
wp-includes/default-filters.php 118
add_action( 'admin_init', 'wp_schedule_update_user_counts' );
wp-includes/default-filters.php 525
add_action( 'admin_init', '_wp_check_for_scheduled_split_terms' );
wp-includes/default-filters.php 532
add_action( 'admin_init', '_wp_check_for_scheduled_update_comment_type' );
wp-includes/default-filters.php 697
add_action( 'admin_init', 'wp_set_client_side_media_processing_flag' );
wp-includes/default-filters.php 716
add_action( 'admin_init', '_wp_admin_bar_init' );
wp-includes/deprecated.php 5887
add_action( 'admin_init', $fn_generate_and_enqueue_editor_styles );
wp-includes/ms-default-filters.php 84
add_action( 'admin_init', 'wp_schedule_update_network_counts' );
wp-includes/ms-default-filters.php 91
remove_action( 'admin_init', 'wp_schedule_update_user_counts' );
wp-includes/update.php 1191
add_action( 'admin_init', '_maybe_update_core' );
wp-includes/update.php 1197
add_action( 'admin_init', '_maybe_update_plugins' );
wp-includes/update.php 1203
add_action( 'admin_init', '_maybe_update_themes' );