原因是,另一种方法是api_call()
更糟糕的是,当插件被停用时,您将得到一个php错误。
你可以这样做
if (function_exists(\'api_call\'))
echo api_call();
但它更为冗长,也不那么优雅,挂钩方式允许插件作者更改实际处理挂钩的函数的名称。
此外,当您使用某个操作时,其他代码可以删除该操作,这可能是好事,也可能是坏事,具体取决于上下文。
我个人的观点是,如果您的主题需要调用函数,只需调用它(使用if exists
保护)。这将使您的代码更具可读性。您可以在该代码块添加注释,说明此函数是插件YYY的API。
另一方面,如果编写插件,只需提交函数名并正确公开API即可。钩子应该是控制流上的一个例外/变体,而不是替代它。