init
Событие срабатывает после того, как WordPress полностью загружен, но до того, как любые header заголовки были отправлены.
init - это популярное событие. Обычно используется плагинами для инициализации себя. Этот хук удобен по многим причинам: например, нужно определять пользователя, нужны таксономии, нужны функции установленные в теме (файл functions.php или другой).
К моменту срабатывания init текущий пользователь авторизован (global $current_user уже определена) и установлены все основные глобальные переменные и функции WordPress. Также функции темы уже подключены и все установки установлены: размеры картинок миниатюр, поддержка меню и т.д.
Вместо init
можно использовать wp_loaded - это практически одинаковые события. wp_loaded
срабатывает сразу после 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... }
Примеры
#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; } }
#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 | Введена. |
Где вызывается хук
do_action( 'init' );
Где используется хук в WordPress
add_action( 'init', '_register_theme_block_patterns' );
add_action( 'init', 'register_block_core_archives' );
add_action( 'init', 'register_block_core_avatar' );
add_action( 'init', 'register_block_core_block' );
add_action( 'init', 'register_block_core_calendar' );
add_action( 'init', 'register_block_core_categories' );
add_action( 'init', 'register_block_core_comment_author_name' );
add_action( 'init', 'register_block_core_comment_content' );
add_action( 'init', 'register_block_core_comment_date' );
add_action( 'init', 'register_block_core_comment_edit_link' );
add_action( 'init', 'register_block_core_comment_reply_link' );
add_action( 'init', 'register_block_core_comment_template' );
add_action( 'init', 'register_block_core_comments_pagination_next' );
add_action( 'init', 'register_block_core_comments_pagination_numbers' );
add_action( 'init', 'register_block_core_comments_pagination_previous' );
add_action( 'init', 'register_block_core_comments_pagination' );
add_action( 'init', 'register_block_core_comments_title' );
add_action( 'init', 'register_legacy_post_comments_block', 21 );
add_action( 'init', 'register_block_core_comments' );
add_action( 'init', 'register_block_core_cover' );
add_action( 'init', 'register_block_core_file' );
add_action( 'init', 'register_block_core_footnotes' );
add_action( 'init', 'register_block_core_gallery' );
add_action( 'init', 'register_block_core_heading' );
add_action( 'init', 'register_block_core_home_link' );
add_action( 'init', 'register_block_core_image' );
add_action( 'init', 'register_core_block_style_handles', 9 );
add_action( 'init', 'register_core_block_types_from_metadata' );
add_action( 'init', 'register_block_core_latest_comments' );
add_action( 'init', 'register_block_core_latest_posts' );
add_action( 'init', 'register_block_core_legacy_widget' );
add_action( 'init', 'register_block_core_loginout' );
add_action( 'init', 'register_block_core_navigation_link' );
add_action( 'init', 'register_block_core_navigation_submenu' );
add_action( 'init', 'register_block_core_navigation' );
add_action( 'init', 'register_block_core_page_list_item' );
add_action( 'init', 'register_block_core_page_list' );
add_action( 'init', 'register_block_core_pattern' );
add_action( 'init', 'register_block_core_post_author_biography' );
add_action( 'init', 'register_block_core_post_author_name' );
add_action( 'init', 'register_block_core_post_author' );
add_action( 'init', 'register_block_core_post_comments_form' );
add_action( 'init', 'register_block_core_post_content' );
add_action( 'init', 'register_block_core_post_date' );
add_action( 'init', 'register_block_core_post_excerpt' );
add_action( 'init', 'register_block_core_post_featured_image' );
add_action( 'init', 'register_block_core_post_navigation_link' );
add_action( 'init', 'register_block_core_post_template' );
add_action( 'init', 'register_block_core_post_terms' );
add_action( 'init', 'register_block_core_post_title' );
add_action( 'init', 'register_block_core_query_no_results' );
add_action( 'init', 'register_block_core_query_pagination_next' );
add_action( 'init', 'register_block_core_query_pagination_numbers' );
add_action( 'init', 'register_block_core_query_pagination_previous' );
add_action( 'init', 'register_block_core_query_pagination' );
add_action( 'init', 'register_block_core_query_title' );
add_action( 'init', 'register_block_core_query' );
add_action( 'init', 'register_block_core_read_more' );
add_action( 'init', 'register_block_core_rss' );
add_action( 'init', 'register_block_core_search' );
add_action( 'init', 'register_block_core_shortcode' );
add_action( 'init', 'register_block_core_site_logo' );
add_action( 'init', 'register_block_core_site_tagline' );
add_action( 'init', 'register_block_core_site_title' );
add_action( 'init', 'register_block_core_social_link' );
add_action( 'init', 'register_block_core_tag_cloud' );
add_action( 'init', 'register_block_core_template_part' );
add_action( 'init', 'register_block_core_term_description' );
add_action( 'init', 'register_block_core_widget_group' );
remove_action( 'init', 'wp_cron' );
add_action( 'init', array( $this, 'init' ), 0 );
add_action( 'init', 'wp_init_targeted_link_rel_filters' );
add_action( 'init', '_register_core_block_patterns_and_categories' );
add_action( 'init', 'check_theme_switched', 99 );
add_action( 'init', array( 'WP_Block_Supports', 'init' ), 22 );
add_action( 'init', 'wp_cron' );
add_action( 'init', 'smilies_init', 5 );
add_action( 'init', 'wp_schedule_delete_old_privacy_export_files' );
add_action( 'init', '_show_post_preview' );
add_action( 'init', 'rest_api_init' );
add_action( 'init', 'wp_sitemaps_get_server' );
add_action( 'init', 'create_initial_post_types', 0 ); // Highest priority.
add_action( 'init', 'kses_init' );
add_action( 'init', '_wp_footnotes_kses_init' );
add_action( 'init', 'create_initial_taxonomies', 0 ); // Highest priority.
add_action( 'init', 'wp_widgets_init', 1 );
add_action( 'init', 'wp_register_persisted_preferences_meta' );
add_action( 'init', 'wp_create_initial_post_meta' );
add_action( 'init', 'ms_subdomain_constants' );
add_action( 'init', 'maybe_add_existing_user_to_blog' );
add_action( 'init', 'wp_attach_theme_preview_middleware' );
add_action( 'init', 'wp_schedule_update_checks' );