问题:wordpress:如何执行动作?

挂钩到 wordpress 核心的自定义钩子是否由 wordpress 自动执行,还是我们必须自己在自定义钩子上调用do_action函数?

例子:

add_action("action_one","some_process",10);
add_action("action_one","some_different_process",11);

function some_process(){ //... }
function some_different_process(){ //... }

do_action("action_one");

some_process是否先执行,然后some_different_process在调用do_action("action_one")之后执行?

解答

如果您创建自定义主题或插件中存在的自定义操作挂钩,那么是的,您必须通过do_action在您希望触发它们的适当位置调用它们。

WordPress 不会自动找到动作挂钩并触发它们。它有许多内置的钩子,您可以使用这些钩子来运行自定义代码,但是如果您创建自己的钩子,那么您还需要设置适当的do_action调用才能运行它们。

要回答关于some_processsome_different_process执行顺序的其他问题,some_process将在some_different_process之前运行,因为它的优先级较低。

如果你想让一个动作早点运行,给它一个低的数字,比如 1 或 5,如果你不关心它在哪里运行或希望它最后运行,我通常使用更高的数字,比如 100 或 1000。如果两个钩子被定义为具有相同的优先级,通常首先注册的将在具有相同优先级的另一个之前运行。

Logo

更多推荐