WordPress插件机制

一、    基本原理

WordPress中默认定义了很多扩展点(也可以叫做“钩子”),或者说注册了很多系统事件(WP中的叫法应该是“Action Tag”),比如“post_publish”表示表示发布文章时产生的事件。而插件要做的就是扩展这些扩展点,或者说挂接这些钩子,从而实现系统的扩展功能。add_action就是通常插件扩展某个扩展点用到的函数,而do_action 是扩展点本身开始执行的函数。

二、     实现机制

WordPress中保存了一个全局数组,数组中保存了每个扩展点中挂载(hook to)的函数列表,当执行到这些扩展点时,该扩展点下的函数就会自动执行,示意图如下:

在/wp-includes/plugins.php文件中是wodpress实现插件机制定义的API。值得注意的是:wordpress定义了两种类型的插件API,行为(actions)和过滤器(filters)。这两种类型的API从代码上看没有任 何区别,主要的不同反映在实际应用中。行为(actions)即是在内核执行到某个标记点时所要执行的一系列函数;而过滤器则是内核执行到此标记时,将一 些数据(通常是文本)传递给相应的函数,这些函数在数据库和浏览器之间对数据进行相应的修改,因此起到了“过滤器”的作用。

具体用法参看http://codex.wordpress.org/Plugin_API

本文地址:http://www.yaronspace.cn/blog/index.php/archives/275

来自yaronspace.cn  本文链接:http://yaronspace.cn/blog/archives/275