问题描述
这个问题可能是错的,我不确定。因为我不清楚这一点。
我知道 add_action
是用来把我们的函数挂钩到指定的函数。例如 add_action('wp_head'.'myfunc');
现在 myfunc
中的代码将在 wp_head()
中执行。这很清楚,但我对 do_action
有什么疑问?
我认为它是用来创建我们自己的钩子像已经可用的钩子 (wp_head,wp_footer,.. 等) 如果我是正确的,任何人都可以用简单的例子给我一个简单易懂的答案。
我已经尝试了互联网上的差异,但都指向了 add_action 和 add_filter 之间的区别。我不想去那里,因为我想澄清一下,然后我会移动到那里。
有谁能够帮助我?
问题 POST 后编辑
function custom_register()
{
echo '<script>jQuery(document).ready(function(){alert("Learning Hooks");});</script>';
}
do_action('custom');
add_action('custom','custom_register');
我在插件中尝试过这个,但我没有收到警报消息。
但是当我用 wp_head
挂接相同的功能时,它工作正常
/******************working****************/
add_action('wp_head','custom_register');
最佳解决方案
使用 do_action( 'unique_name' )
创建自己的操作。
您可以使用它来提供 API for your plugin,因此其他插件可以为您的自定义操作注册回调。示例:Do I need to call do_action in my plugin?
但是您也可以在主题中使用自定义操作 (或过滤器) 。示例:Best practice way to implement custom sections into a WordPress theme
而且您可以结合使用一个插件和一个主题一起工作。示例:How to make method from plugin available in theme?
总结:add_action( 'foo' )
注册回调,do_action( 'foo' )
执行注册的回调。
参考文献
注:本文内容整合自 Google/Baidu/Bing 辅助翻译的英文资料结果。如果您对结果不满意,可以加入我们改善翻译效果:薇晓朵技术论坛。