initaction-hookWP 1.5.0

Fires after WordPress has finished loading but before any HTTP headers are sent.

init is a popular event. Plugins commonly use it to initialize themselves. This hook is useful for many reasons: for example, when the user must already be identified, taxonomies are needed, or functions defined by the theme (functions.php or another file) are required.

By the time init fires, the current user is authenticated (the global $current_user is already defined), and all main WordPress global variables and functions are set up. Theme functions are also loaded, and settings such as thumbnail sizes and menu support have been registered.

You can use wp_loaded instead of init; the events are nearly identical. wp_loaded fires immediately after init and after ms_site_check() checks the current blog in a multisite installation. wp_loaded does not fire if the current blog fails its operational check (it is inactive, deleted, marked as spam, or archived).

Events that fire before 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

Usage

add_action( 'init', 'wp_kama_init_action' );

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

	// action...
}

Examples

#1 Attach to other events from init

add_action('init','all_my_hooks');
function all_my_hooks(){
	// Attach handlers to later events.
	add_action('admin_init', 'my_function_name');
	add_action('admin_menu', 'my_function_name');
}

#2 Handle a $_GET request

Suppose we need to redirect to the registration page when the request contains the register variable:

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

Changelog

Since 1.5.0 Introduced.

Where the hook is called

In file: /wp-settings.php
init
wp-settings.php 779
do_action( 'init' );

Where the hook is used in WordPress

wp-includes/block-bindings/pattern-overrides.php 47
add_action( 'init', '_register_block_bindings_pattern_overrides_source' );
wp-includes/block-bindings/post-data.php 98
add_action( 'init', '_register_block_bindings_post_data_source' );
wp-includes/block-bindings/post-meta.php 70
add_action( 'init', '_register_block_bindings_post_meta_source' );
wp-includes/block-bindings/term-data.php 119
add_action( 'init', '_register_block_bindings_term_data_source' );
wp-includes/block-patterns.php 478
add_action( 'init', '_register_theme_block_patterns' );
wp-includes/block-supports/custom-css.php 330
add_action( 'init', 'wp_custom_css_kses_init', 20 );
wp-includes/blocks/accordion-item.php 87
add_action( 'init', 'register_block_core_accordion_item' );
wp-includes/blocks/accordion.php 45
add_action( 'init', 'register_block_core_accordion' );
wp-includes/blocks/archives.php 174
add_action( 'init', 'register_block_core_archives' );
wp-includes/blocks/avatar.php 166
add_action( 'init', 'register_block_core_avatar' );
wp-includes/blocks/block.php 107
add_action( 'init', 'register_block_core_block' );
wp-includes/blocks/breadcrumbs.php 611
add_action( 'init', 'register_block_core_breadcrumbs' );
wp-includes/blocks/button.php 147
add_action( 'init', 'register_block_core_button' );
wp-includes/blocks/calendar.php 96
add_action( 'init', 'register_block_core_calendar' );
wp-includes/blocks/categories.php 159
add_action( 'init', 'register_block_core_categories' );
wp-includes/blocks/comment-author-name.php 69
add_action( 'init', 'register_block_core_comment_author_name' );
wp-includes/blocks/comment-content.php 85
add_action( 'init', 'register_block_core_comment_content' );
wp-includes/blocks/comment-date.php 64
add_action( 'init', 'register_block_core_comment_date' );
wp-includes/blocks/comment-edit-link.php 65
add_action( 'init', 'register_block_core_comment_edit_link' );
wp-includes/blocks/comment-reply-link.php 87
add_action( 'init', 'register_block_core_comment_reply_link' );
wp-includes/blocks/comment-template.php 153
add_action( 'init', 'register_block_core_comment_template' );
wp-includes/blocks/comments-pagination-next.php 64
add_action( 'init', 'register_block_core_comments_pagination_next' );
wp-includes/blocks/comments-pagination-numbers.php 66
add_action( 'init', 'register_block_core_comments_pagination_numbers' );
wp-includes/blocks/comments-pagination-previous.php 57
add_action( 'init', 'register_block_core_comments_pagination_previous' );
wp-includes/blocks/comments-pagination.php 55
add_action( 'init', 'register_block_core_comments_pagination' );
wp-includes/blocks/comments-title.php 100
add_action( 'init', 'register_block_core_comments_title' );
wp-includes/blocks/comments.php 102
add_action( 'init', 'register_block_core_comments' );
wp-includes/blocks/comments.php 227
add_action( 'init', 'register_legacy_post_comments_block', 21 );
wp-includes/blocks/cover.php 215
add_action( 'init', 'register_block_core_cover' );
wp-includes/blocks/details.php 47
add_action( 'init', 'register_block_core_details' );
wp-includes/blocks/file.php 67
add_action( 'init', 'register_block_core_file' );
wp-includes/blocks/footnotes.php 113
add_action( 'init', 'register_block_core_footnotes_post_meta', 20 );
wp-includes/blocks/footnotes.php 78
add_action( 'init', 'register_block_core_footnotes' );
wp-includes/blocks/gallery.php 588
add_action( 'init', 'register_block_core_gallery' );
wp-includes/blocks/heading.php 56
add_action( 'init', 'register_block_core_heading' );
wp-includes/blocks/home-link.php 157
add_action( 'init', 'register_block_core_home_link' );
wp-includes/blocks/icon.php 146
add_action( 'init', 'register_block_core_icon' );
wp-includes/blocks/image.php 420
add_action( 'init', 'register_block_core_image' );
wp-includes/blocks/index.php 144
add_action( 'init', 'register_core_block_style_handles', 9 );
wp-includes/blocks/index.php 160
add_action( 'init', 'register_core_block_types_from_metadata' );
wp-includes/blocks/index.php 177
add_action( 'init', 'wp_register_core_block_metadata_collection', 9 );
wp-includes/blocks/latest-comments.php 174
add_action( 'init', 'register_block_core_latest_comments' );
wp-includes/blocks/latest-posts.php 283
add_action( 'init', 'register_block_core_latest_posts' );
wp-includes/blocks/legacy-widget.php 73
add_action( 'init', 'register_block_core_legacy_widget' );
wp-includes/blocks/list.php 54
add_action( 'init', 'register_block_core_list' );
wp-includes/blocks/loginout.php 74
add_action( 'init', 'register_block_core_loginout' );
wp-includes/blocks/media-text.php 131
add_action( 'init', 'register_block_core_media_text' );
wp-includes/blocks/navigation-link.php 504
add_action( 'init', 'register_block_core_navigation_link' );
wp-includes/blocks/navigation-overlay-close.php 56
add_action( 'init', 'register_block_core_navigation_overlay_close' );
wp-includes/blocks/navigation-submenu.php 320
add_action( 'init', 'register_block_core_navigation_submenu' );
wp-includes/blocks/navigation.php 1597
add_action( 'init', 'register_block_core_navigation' );
wp-includes/blocks/page-list-item.php 16
add_action( 'init', 'register_block_core_page_list_item' );
wp-includes/blocks/page-list.php 367
add_action( 'init', 'register_block_core_page_list' );
wp-includes/blocks/paragraph.php 48
add_action( 'init', 'register_block_core_paragraph' );
wp-includes/blocks/pattern.php 72
add_action( 'init', 'register_block_core_pattern' );
wp-includes/blocks/playlist-track.php 81
add_action( 'init', 'register_block_core_playlist_track' );
wp-includes/blocks/playlist.php 210
add_action( 'init', 'register_block_core_playlist' );
wp-includes/blocks/post-author-biography.php 53
add_action( 'init', 'register_block_core_post_author_biography' );
wp-includes/blocks/post-author-name.php 63
add_action( 'init', 'register_block_core_post_author_name' );
wp-includes/blocks/post-author.php 81
add_action( 'init', 'register_block_core_post_author' );
wp-includes/blocks/post-comments-count.php 49
add_action( 'init', 'register_block_core_post_comments_count' );
wp-includes/blocks/post-comments-form.php 70
add_action( 'init', 'register_block_core_post_comments_form' );
wp-includes/blocks/post-comments-link.php 75
add_action( 'init', 'register_block_core_post_comments_link' );
wp-includes/blocks/post-content.php 96
add_action( 'init', 'register_block_core_post_content' );
wp-includes/blocks/post-date.php 106
add_action( 'init', 'register_block_core_post_date' );
wp-includes/blocks/post-excerpt.php 96
add_action( 'init', 'register_block_core_post_excerpt' );
wp-includes/blocks/post-featured-image.php 272
add_action( 'init', 'register_block_core_post_featured_image' );
wp-includes/blocks/post-navigation-link.php 139
add_action( 'init', 'register_block_core_post_navigation_link' );
wp-includes/blocks/post-template.php 165
add_action( 'init', 'register_block_core_post_template' );
wp-includes/blocks/post-terms.php 130
add_action( 'init', 'register_block_core_post_terms' );
wp-includes/blocks/post-time-to-read.php 185
add_action( 'init', 'register_block_core_post_time_to_read' );
wp-includes/blocks/post-title.php 74
add_action( 'init', 'register_block_core_post_title' );
wp-includes/blocks/query-no-results.php 65
add_action( 'init', 'register_block_core_query_no_results' );
wp-includes/blocks/query-pagination-next.php 102
add_action( 'init', 'register_block_core_query_pagination_next' );
wp-includes/blocks/query-pagination-numbers.php 133
add_action( 'init', 'register_block_core_query_pagination_numbers' );
wp-includes/blocks/query-pagination-previous.php 95
add_action( 'init', 'register_block_core_query_pagination_previous' );
wp-includes/blocks/query-pagination.php 51
add_action( 'init', 'register_block_core_query_pagination' );
wp-includes/blocks/query-title.php 103
add_action( 'init', 'register_block_core_query_title' );
wp-includes/blocks/query-total.php 90
add_action( 'init', 'register_block_core_query_total' );
wp-includes/blocks/query.php 71
add_action( 'init', 'register_block_core_query' );
wp-includes/blocks/read-more.php 63
add_action( 'init', 'register_block_core_read_more' );
wp-includes/blocks/rss.php 145
add_action( 'init', 'register_block_core_rss' );
wp-includes/blocks/search.php 240
add_action( 'init', 'register_block_core_search' );
wp-includes/blocks/shortcode.php 35
add_action( 'init', 'register_block_core_shortcode' );
wp-includes/blocks/site-logo.php 119
add_action( 'init', 'register_block_core_site_logo' );
wp-includes/blocks/site-tagline.php 53
add_action( 'init', 'register_block_core_site_tagline' );
wp-includes/blocks/site-title.php 69
add_action( 'init', 'register_block_core_site_title' );
wp-includes/blocks/social-link.php 89
add_action( 'init', 'register_block_core_social_link' );
wp-includes/blocks/tab-list.php 76
add_action( 'init', 'register_block_core_tab_list' );
wp-includes/blocks/tab-panel.php 65
add_action( 'init', 'register_block_core_tab_panel' );
wp-includes/blocks/tabs.php 139
add_action( 'init', 'register_block_core_tabs' );
wp-includes/blocks/tag-cloud.php 63
add_action( 'init', 'register_block_core_tag_cloud' );
wp-includes/blocks/template-part.php 299
add_action( 'init', 'register_block_core_template_part' );
wp-includes/blocks/term-count.php 80
add_action( 'init', 'register_block_core_term_count' );
wp-includes/blocks/term-description.php 61
add_action( 'init', 'register_block_core_term_description' );
wp-includes/blocks/term-name.php 81
add_action( 'init', 'register_block_core_term_name' );
wp-includes/blocks/term-template.php 137
add_action( 'init', 'register_block_core_term_template' );
wp-includes/blocks/video.php 91
add_action( 'init', 'register_block_core_video' );
wp-includes/blocks/widget-group.php 62
add_action( 'init', 'register_block_core_widget_group' );
wp-includes/class-wp-customize-manager.php 378
remove_action( 'init', 'wp_cron' );
wp-includes/class-wp-scripts.php 154
add_action( 'init', array( $this, 'init' ), 0 );
wp-includes/connectors.php 846
add_action( 'init', '_wp_register_default_connector_settings', 20 );
wp-includes/connectors.php 891
add_action( 'init', '_wp_connectors_pass_default_keys_to_ai_client', 20 );
wp-includes/default-filters.php 154
add_action( 'init', 'wp_create_initial_comment_meta' );
wp-includes/default-filters.php 371
add_action( 'init', '_register_core_block_patterns_and_categories' );
wp-includes/default-filters.php 372
add_action( 'init', 'check_theme_switched', 99 );
wp-includes/default-filters.php 373
add_action( 'init', array( 'WP_Block_Supports', 'init' ), 22 );
wp-includes/default-filters.php 413
add_action( 'init', 'wp_cron' );
wp-includes/default-filters.php 440
add_action( 'init', 'smilies_init', 5 );
wp-includes/default-filters.php 459
add_action( 'init', 'wp_schedule_delete_old_privacy_export_files' );
wp-includes/default-filters.php 461
add_action( 'init', 'wp_schedule_personal_data_cleanup_requests' );
wp-includes/default-filters.php 493
add_action( 'init', '_show_post_preview' );
wp-includes/default-filters.php 545
add_action( 'init', 'rest_api_init' );
wp-includes/default-filters.php 556
add_action( 'init', '_wp_connectors_init', 15 );
wp-includes/default-filters.php 559
add_action( 'init', 'wp_sitemaps_get_server' );
wp-includes/default-filters.php 579
add_action( 'init', 'wp_initialize_site_preview_hooks', 1 );
wp-includes/default-filters.php 591
add_action( 'init', 'create_initial_post_types', 0 ); // Highest priority.
wp-includes/default-filters.php 606
add_action( 'init', 'kses_init' );
wp-includes/default-filters.php 671
add_action( 'init', '_wp_footnotes_kses_init' );
wp-includes/default-filters.php 683
add_action( 'init', 'create_initial_taxonomies', 0 ); // Highest priority.
wp-includes/default-filters.php 709
add_action( 'init', 'wp_widgets_init', 1 );
wp-includes/default-filters.php 794
add_action( 'init', 'wp_register_persisted_preferences_meta' );
wp-includes/default-filters.php 797
add_action( 'init', 'wp_create_initial_post_meta' );
wp-includes/default-filters.php 815
add_action( 'init', '_wp_register_default_font_collections' );
wp-includes/default-filters.php 818
add_action( 'init', '_wp_register_default_icon_collections', 0 );
wp-includes/default-filters.php 819
add_action( 'init', '_wp_register_default_icons' );
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/theme-previews.php 90
add_action( 'init', 'wp_attach_theme_preview_middleware' );
wp-includes/update.php 1210
add_action( 'init', 'wp_schedule_update_checks' );