Answers:
WordPress钩子的工作方式类似于好莱坞:您不叫它们,他们叫您。但是与好莱坞不同,他们一直在名单上称呼所有人。
一个动作或一个过滤器具有连接到它的多个功能是正常的,这些功能来自不同的插件,或者甚至是WordPress核心中的不同功能,它们都执行特定的操作。这不仅是可能的,而且甚至是良好的实践,因为这意味着您的代码变得更加清晰(每个函数仅做一件事),并且通过取消挂钩来禁用一项特定功能更容易。
请记住,您还可以使用挂钩的优先级:如果您要同时运行functionA()
和都functionB()
在挂钩中after_setup_theme
,但functionA()
必须在之前运行functionB()
,则可以functionA()
使用默认优先级10
和functionB()
优先级20
(或大于10的任何其他数字)进行挂钩。无法执行的是在执行动作时将另一个函数挂接到该动作。所以你不能挂钩functionB()
,以after_setup_theme
从functionA()
,号召after_setup_theme
。您可以直接调用它,但是会失去单独的钩子的好处。
我的建议是拥有一个“主”功能,如果愿意的话,它会调用所有其他功能。这样,您只需要一次执行该操作即可。
add_action( 'after_setup_theme', 'master_function' );
function master_function()
{
func_a();
func_b();
func_c();
func_d();
func_e();
}
function func_a(){ /* Do something */}
function func_b(){ /* Do something */}
function func_c(){ /* Do something */}
function func_d(){ /* Do something */}
function func_e(){ /* Do something */}
这样做还有一个好处,就是能够返回可在后续函数调用中使用的值。