一直想写一篇关于Wordpress插件开发的文章,但是一些插件开发的基础知识,描述起来需要很大的篇幅,因此我就借助他人的知识来完成一篇开发实例吧。
如果你想要做一个wordpress的插件,你可能会问以下两个问题:
1. Wordpress的插件是如何工作的?
2. Wordpress的插件是如何开发的?
首先,给大家介绍一下Wordpress插件的工作原理。
Wordpress的大部分插件都是对程序的输出内容进行修改,比如在侧边栏添加一个flickr相册、加入最新评论等内容,在这个过程里面有一个叫hook的概念。hook的本义是“钩子”,衍伸到IT行业来说,就是把原有的输出或者通讯半路拦截下来并加入自定义内容的一个过程。
因此Wordpress插件在内容方面的基本工作原理就是hook,在Wordpress的官方API中,这种hook行为被定义为filter(过滤)。
在实现对内容进行hook的过程当中,插件可能需要一系列的连锁反应,以评论为例,由于评论的行为发生频率并不高,因此评论的总数是没有必要实时去更新的,当新评论产生时再更新是比较合适的办法。
为此,Wordpress提供了事件驱动的模型,通过API可以很方便地绑定各种行为,这个API被称作action。
了解了Wordpress插件的工作原理之后,下面给大家介绍一下关于插件开发的基础知识,由于描述起来比较复杂,所以这里大家可以参考水煮鱼的文章《自己动手写Wordpress插件》,这篇文章分几个部分,描述得比较详细。
开发一个Wordpress插件需要php、mysql、js以及CSS(甚至flash)等各个方面的知识,因此对人的综合素质要求还是颇高的,但事实上并不难,下面我就结合《Achome Comment Flow》这个插件的开发过程,给大家做一个范例演示。
首先从程序架构上来分析:
Achome Comment Flow的数据流分为三个部分,即数据库、数据处理中心和数据输出。
程序架构也由三个部分构成,分别是php源码、widget配置和flash前端展示。
从下面这种结构图,大家可以非常清晰地理解它的结构:

其次从开发步骤来分析:
1. 编写代码注册widget
2. 编写代码注册widget的编辑面板
3. 根据widget的选项生成配置参数,传递给前端flash
4. 每次配置完毕或有新评论产生,重新生成供flash调用的XML文件
有兴趣的朋友可以下载Achome Comment Flow的源码进行分析,里面有详细的注释,有问题可以给我留言。

