init 与 wp_loaded:与示例有何不同?

Uma*_*oon 4 wordpress

我知道当大多数 WordPress 已加载但未发送标头时init会被触发,而当大多数 WordPress 已加载且标头已发送时wp_loaded会被触发。

有人可以用一个例子来解释什么可以使用这些钩子,什么不能使用这些钩子,并通过用例场景来解释和澄清它们的区别吗?

Ale*_* K. 6

根据我的理解,inithook 意味着 WP 核心已加载,但第 3 方内容(例如主题、插件等)才开始加载。钩子wp_loaded意味着核心和第三方内容。

\n
\n

有人可以用一个例子来解释什么可以使用这些钩子,什么不能使用这些钩子,并通过用例场景来解释和澄清它们的区别吗?

\n
\n

我想如果你想覆盖第 3 方插件,你需要使用wp_loaded,除非插件本身创建它自己的特定“加载”钩子。

\n

如果您想以某种方式更改默认样式和脚本,您需要使用wp_loaded它们,因为它们在以下情况下不会加载init。

\n
\n

请参阅下面的技术说明:

\n

init在wp_loaded之前 运行:

\n
    \n
  • init
  • \n
  • register_sidebar
  • \n
  • wp_register_sidebar_widget
  • \n
  • wp_default_scripts
  • \n
  • wp_default_styles
  • \n
  • admin_bar_init
  • \n
  • add_admin_bar_menus
  • \n
  • wp_loaded
  • \n
\n

来源:WP Codex

\n

对钩子的额外见解init:

\n
\n

大部分 WP 在此阶段已加载,并且用户已通过身份验证。WP 继续在后面的 \xe2\x80\x98init\xe2\x80\x99 钩子上加载(例如小部件),并且许多插件出于各种原因在其上实例化自己(例如它们需要用户、分类法等)。 )。

\n
\n

来源: WP 开发者

\n

额外的见解wp_loaded:

\n
\n

一旦 WP、所有插件和主题完全加载并实例化,就会触发此钩子。

\n
\n

来源: WP 开发者

\n

编辑:另外,请记住之前wp_loaded执行的 admin_init(如果是管理页面请求)

\n