我们可以使用如下函数register_nav_menu()
直接进入function.php
它可以工作,我们也可以使用一个函数register_nav_menu()
并使用hook
像init一样,它也可以工作。
为什么我们需要使用hook
在那种特殊情况下?
我们可以使用如下函数register_nav_menu()
直接进入function.php
它可以工作,我们也可以使用一个函数register_nav_menu()
并使用hook
像init一样,它也可以工作。
为什么我们需要使用hook
在那种特殊情况下?
想象两个人正在烹饪食物,两人都在遵循食谱,这时两人都达到了说明5。这个指令告诉他们如何处理生肉,生吃生肉可能会有危险。
在里面Alices\'她看到的食谱:
当肉安全煮熟后,吃下肉
在里面Bobs\'他看到的食谱:
吃肉
Alice 把肉煮好,然后带着饱肚子回家。
Bob 吃生肉,被送往A&;数小时后,大肠杆菌中毒。
钩子和过滤器也是如此。通过使用挂钩进行工作,您可以指定工作何时发生。将其直接放入函数中。php文件,它将在文件加载后立即发生,这并不总是合适的。也许有些东西还没有加载?还是必须在最后或尽早发生?
一周后,C和D尝试遵循第一个配方,两人都使用了第六步的修订配方。他们听说了Bob 并决定进行一些修改。
Person C 查看:
6: 当你身边有朋友时,加上昂贵的酱汁
Person D 查看:
6: 添加昂贵的酱汁
昂贵的酱汁很贵,只有5瓶!两个人都没有朋友,所以Person C 不用酱汁省钱但是Person D always添加了昂贵的酱汁,即使不需要,因为他们的食谱没有规定什么时候应该添加,什么时候不应该添加。
钩子也是如此。有时,您只希望在某些事件发生时发生事情,等等,例如,我可能会在admin_init
钩子,这样检查就不会发生在前端,只有仪表板管理员
机器读代码就像(大多数西欧人)读文本一样:从左到右,从上到下。钩子和过滤器就在文本的中间。举个简单的例子:
do_action( \'plugins_loaded\' );
do_action( \'zombie_entry\' );
现在您可以将回调附加到zombie_entry
在上述段落中间添加额外内容。示例:
add_action( \'zombie_entry\', \'add_zombies\' );
function add_zombies()
{
echo \'Roooaaar!\';
}
插件可用的第一个挂钩是plugins_loaded
, mu插件的第一个muplugins_loaded
第一个主题是after_setup_theme
. 这意味着插件、主题文件等在挂钩或过滤器之前加载。这意味着,如果没有将回调附加到过滤器或挂钩,那么在加载文件时,代码将直接执行。由此可能产生的问题是,您可能无法访问函数(稍后定义)或尚未设置先决条件。我是updating the codex page example for action hooks, 在游戏中完成一些可重用的功能(最初是针对这里的一些Q@WA)。但后来我遇到了一个以前没有意识到的问题:在挂接到一个函数以修改变量的输出后,我再也无法决定是要回显输出还是只返回它。The Problem: 我可以修改传递给do_action 用回调函数钩住。使用变量修改/添加的所有内容仅在回调函数中可用,但在do_action 在原始函数内部调用。很高兴:我将其修改为一个工作示例,因此您可以将其复制/粘贴