wordpress如何在内部实现钩子?
答案 0 :(得分:7)
基本上,它维护一个名为$wp_filter
的全局变量来保存相关数据。插件可以使用add_filter()
等功能来注册。
在各个点(挂钩点),wordpress检查$wp_filter
以查看是否有要运行的过滤器。
最简单的解决方法是查看wp-includes/plugin.php
并研究那里的代码(或者连接调试器并逐步执行,或者设置firePHP
并定期转储内容)
我不是专家,但我很好奇,所以我偷看了。如果我真的想知道更多,我会做我刚刚建议的。
答案 1 :(得分:0)
如果你有任何事件驱动的编程经验,如.net等..你必须知道事件..考虑这些钩子也是事件......一个插件注册它想要触发一个函数的事件和事件对象记住那个..然后当从WP中的某个地方触发该事件时,它会通过数组找到它需要为该特定事件调用的函数。