do_action( ‘init’ )

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


Most of WP is loaded at this stage, and the user is authenticated. WP continues to load on the ‘init’ hook that follows (e.g. widgets), and many plugins instantiate themselves on it for all sorts of reasons (e.g. they need a user, a taxonomy, etc.).

If you wish to plug an action once WP is loaded, use the ‘wp_loaded’ hook below.

More Information


Use init to act on $_POST data:

add_action( 'init', 'process_post' );

function process_post() {
if( isset( $_POST['unique_hidden_field'] ) ) {
// process $_POST data here


init is useful for intercepting $_GET or $_POST triggers.

load_plugin_textdomain calls should be made during init, otherwise users cannot hook into it.

If you wish to plug an action once WP is loaded, use the wp_loaded hook.


do_action( 'init' );



User Contributed Notes

  1. Skip to note 2 content

    This hook works almost like the admin_init hook. The difference is the admin_init fires on the initialization of admin screen or scripts and this init hook fires on the initialization time of the whole WordPress script. Like-

     * Fire on the initialization of WordPress.
    function the_dramatist_fire_on_wp_initialization() {
        // Do stuff. Say we will echo "Fired on the WordPress initialization".
        echo 'Fired on the WordPress initialization';
    add_action( 'init', 'the_dramatist_fire_on_wp_initialization' );

    Now the above code will echo “Fired on the WordPress initialization” on initialization of WordPress.

You must log in before being able to contribute a note or feedback.