直接添加函数与在函数.php中使用钩子

时间:2014-06-22 作者:user1906399

我们可以使用如下函数register_nav_menu() 直接进入function.php 它可以工作,我们也可以使用一个函数register_nav_menu() 并使用hook 像init一样,它也可以工作。

为什么我们需要使用hook 在那种特殊情况下?

2 个回复
最合适的回答,由SO网友:Tom J Nowell 整理而成

想象两个人正在烹饪食物,两人都在遵循食谱,这时两人都达到了说明5。这个指令告诉他们如何处理生肉,生吃生肉可能会有危险。

在里面Alices\'她看到的食谱:

当肉安全煮熟后,吃下肉

在里面Bobs\'他看到的食谱:

吃肉

Alice 把肉煮好,然后带着饱肚子回家。

Bob 吃生肉,被送往A&;数小时后,大肠杆菌中毒。

钩子和过滤器也是如此。通过使用挂钩进行工作,您可以指定工作何时发生。将其直接放入函数中。php文件,它将在文件加载后立即发生,这并不总是合适的。也许有些东西还没有加载?还是必须在最后或尽早发生?

一周后,C和D尝试遵循第一个配方,两人都使用了第六步的修订配方。他们听说了Bob 并决定进行一些修改。

Person C 查看:

6: 当你身边有朋友时,加上昂贵的酱汁

Person D 查看:

6: 添加昂贵的酱汁

昂贵的酱汁很贵,只有5瓶!两个人都没有朋友,所以Person C 不用酱汁省钱但是Person D always添加了昂贵的酱汁,即使不需要,因为他们的食谱没有规定什么时候应该添加,什么时候不应该添加。

钩子也是如此。有时,您只希望在某些事件发生时发生事情,等等,例如,我可能会在admin_init 钩子,这样检查就不会发生在前端,只有仪表板管理员

SO网友:kaiser

机器读代码就像(大多数西欧人)读文本一样:从左到右,从上到下。钩子和过滤器就在文本的中间。举个简单的例子:

do_action( \'plugins_loaded\' );

僵尸ipsum reversus ab病毒地狱,nam rick grimes malum cerebro。卡恩·卢姆林(De carne lumbering animata corpora quaeritis)。Summus大脑坐姿​​, morbo vel maleficia?《末日启示录》gorger omero不死族幸存者格言mauris。

do_action( \'zombie_entry\' );

嗨,无知的死神,没有灵魂的造物主,我是邪恶的追踪者,基督复临会,邪恶的秃鹫,活小脑。Qui动画僵尸,蟋蟀蝙蝠max brucks terribilem乱伦苏zomby。巫毒萨卡多食肉动物苏西塔莫托斯粉刺卡内姆病毒。宗弼因眼液和脑液的化脓而破烂。内斯西奥脑中有一个不死僵尸。Sicut malus腐败巫毒恐怖。快死了。

现在您可以将回调附加到zombie_entry 在上述段落中间添加额外内容。示例:

add_action( \'zombie_entry\', \'add_zombies\' );
function add_zombies()
{
    echo \'Roooaaar!\';
}
插件可用的第一个挂钩是plugins_loaded, mu插件的第一个muplugins_loaded 第一个主题是after_setup_theme. 这意味着插件、主题文件等在挂钩或过滤器之前加载。这意味着,如果没有将回调附加到过滤器或挂钩,那么在加载文件时,代码将直接执行。由此可能产生的问题是,您可能无法访问函数(稍后定义)或尚未设置先决条件。

结束

相关推荐

hooks & filters and variables

我是updating the codex page example for action hooks, 在游戏中完成一些可重用的功能(最初是针对这里的一些Q@WA)。但后来我遇到了一个以前没有意识到的问题:在挂接到一个函数以修改变量的输出后,我再也无法决定是要回显输出还是只返回它。The Problem: 我可以修改传递给do_action 用回调函数钩住。使用变量修改/添加的所有内容仅在回调函数中可用,但在do_action 在原始函数内部调用。很高兴:我将其修改为一个工作示例,因此您可以将其复制/粘贴