init хук-подіяWP 1.5.0

Подія спрацьовує після того, як WordPress повністю завантажений, але до того, як будь-які заголовки header були відправлені.

init – це популярна подія. Зазвичай використовується плагінами для ініціалізації себе. Цей хук зручний з багатьох причин: наприклад, потрібно визначати користувача, потрібні таксономії, потрібні функції, встановлені в темі (файл functions.php або інший).

До моменту спрацювання init поточний користувач авторизований (global $current_user вже визначено) та встановлені всі основні глобальні змінні та функції WordPress. Також функції теми вже підключені та всі установки встановлені: розміри картинок мініатюр, підтримка меню тощо.

Замість initможна використовувати ms_site_check() (перевіряє поточний блог у мультисайтовій збірці). wp_loadedне спрацює, якщо поточний блог не пройде перевірку на працездатність (не активний, видалений, спамлений, в архіві).

Події, які спрацьовують до init:
muplugins_loaded
registered_taxonomy
registered_post_type
plugins_loaded
sanitize_comment_cookies
setup_theme
load_textdomain
after_setup_theme
auth_cookie_malformed
auth_cookie_valid
set_current_user
init

Використання

add_action('init', 'wp_kama_init_action');

/**
 * Function for `init` action-hook.
 *
 * @return void
 */
function wp_kama_init_action(){

	// action...
}

Приклади

0

#1 Обробка $_GET запиту

Допустимо нам потрібно перенаправити посилання на сторінку реєстрації, якщо в запиті вказано змінну register:

add_action('init', 'redirect_to_register');
function redirect_to_register(){
	if( isset( $_GET['register'] ) ) {
		wp_redirect( site_url() . 'wp-register.php');
		exit;
	}
}
0

#2 Підключення до інших подій з init

add_action('init','all_my_hooks');
function all_my_hooks(){
	// підключення пізніших подій
	add_action('admin_init', 'my_function_name');
	add_action('admin_menu', 'my_function_name');
}

список змін

З версії 1.5.0Введено.

Де викликається хук

У файлі:
/wp-settings.php

Де використовується хук у WordPress

wp-includes/block-patterns.php 334

add_action( 'init', '_register_theme_block_patterns');

wp-includes/blocks/index.php 115

add_action( 'init', 'register_core_block_types_from_metadata' );

wp-includes/blocks/post-comments-form.php 64

add_action( 'init', 'register_block_core_post_comments_form');

wp-includes/blocks/query.php 16

add_action( 'init', 'register_block_core_query');

wp-includes/default-filters.php 616

add_action( 'init', 'wp_widgets_init', 1);

wp-includes/default-filters.php 550

add_action('init', 'kses_init');

wp-includes/default-filters.php 536

add_action( 'init', 'create_initial_post_types', 0); // Highest priority.

wp-includes/default-filters.php 510

add_action( 'init', 'wp_sitemaps_get_server');

wp-includes/default-filters.php 503

add_action( 'init', 'rest_api_init');

wp-includes/default-filters.php 453

add_action('init', '_show_post_preview');

wp-includes/default-filters.php 423

add_action( 'init', 'wp_schedule_delete_old_privacy_export_files');

wp-includes/default-filters.php 405

add_action( 'init', 'smilies_init', 5);

wp-includes/default-filters.php 384

add_action( 'init', 'wp_schedule_https_detection');

wp-includes/default-filters.php 380

add_action('init', 'wp_cron');

wp-includes/default-filters.php 347

add_action( 'init', array( 'WP_Block_Supports', 'init' ), 22);

wp-includes/default-filters.php 346

add_action( 'init', 'check_theme_switched', 99);

wp-includes/default-filters.php 345

add_action( 'init', '_register_core_block_patterns_and_categories' );

wp-includes/default-filters.php 143

add_action( 'init', 'wp_init_targeted_link_rel_filters');

wp-includes/ms-default-filters.php 16

add_action( 'init', 'ms_subdomain_constants');

wp-includes/ms-default-filters.php 25

add_action( 'init', 'maybe_add_existing_user_to_blog');

wp-includes/update.php 979

add_action( 'init', 'wp_schedule_update_checks');

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *