当前浏览:首页 / WordPress钩子 / init

do_action( 'init' )

在WordPress完成加载后未发送头数据之前触发

init

  • admin_init 在初始化管理界面或脚本时触发
  • init 在WordPress完成加载后未发送头数据之前触发
  • widgets_init 在注册所有默认WordPress小工具后触发

描述

在此阶段加载了大部分WP,并对用户进行了身份验证。WP继续加载在随后的‘init’钩子上(例如小工具),许多插件出于各种原因(例如,它们需要用户、分类等)在上面实例化自己。

如果您希望在加载WP后插入操作,请使用下面的‘wp_loaded’挂钩。


说明

示例:

使用init$_POST数据进行操作:

add_action( 'init', 'process_post' );

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

注意:

init 用于拦截$_GET$_POST触发器。

load_plugin_textdomain调用应该在init期间进行,否则用户无法连接到它。

如果希望在加载WP后插入操作,请使用wp_loaded挂钩。


源码

查看源码 官方文档


更新日志

版本描述
1.5.0开始引入

使用示例

  • 示例1

    这个钩子的工作原理几乎与admin_init钩子类似。区别在于admin_init在管理界面或脚本的初始化时触发,而这个init钩子在整个WordPress脚本的初始化时触发。就像-

    /**
     * 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' );
    

    现在,上述代码将在WordPress初始化时回显“在WordPress初始化时触发”。