Wordpress插件开发实例

Posted April 23rd, 2009. Filed under Internet

一直想写一篇关于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前端展示。
从下面这种结构图,大家可以非常清晰地理解它的结构:

wp_comment_flow_structure

其次从开发步骤来分析:
1. 编写代码注册widget
2. 编写代码注册widget的编辑面板
3. 根据widget的选项生成配置参数,传递给前端flash
4. 每次配置完毕或有新评论产生,重新生成供flash调用的XML文件

有兴趣的朋友可以下载Achome Comment Flow的源码进行分析,里面有详细的注释,有问题可以给我留言。

Achome Comment Flow正式发布

Posted March 16th, 2009. Filed under Download FLASH Internet Other wordpress

上个周日的下午,我躺在床上无聊地翻着iPod Nano里面的歌,突发奇想,为什么不能把WordPress的评论也做成这种CoverFlow形式呢?

说动手就动手,经过一番简单的原型设计,我把我的想法告诉了laan,希望可以得到他在flash方面的支持,经过一周的努力,今天,Achome Comment Flow终于正式发布了(见博客右边栏的Achome Comment Flow)~!

Widget截图:
comment_flow_ui

插件名称:Achome Comment Flow
版本号:1.0.0.0
开发团队:Achome Studio
开发成员:Andrew, Laan
Google Code主页:http://code.google.com/p/achome-comment-flow/
环境说明:
Flashplayer10 和 Wordpress2.7(没有做过以往版本的兼容性测试,理论上有widget支持即可,即WordPress 2.3 或以上版本)。主流浏览器均未出现兼容性问题,safari下的flashplayer有问题,暂无法解决。
功能说明:
Achome Comment Flow是一款易于使用的WordPress Widget插件,可以在WordPress的侧边栏以类似iPhone的coverflow效果显示最近的评论,评论所用的头像来自avatar。通过Widget的编辑界面,您可以对Comment Flow的宽度、高度以及各种颜色和透明度进行自定义设置,希望大家喜欢Achome Comment Flow,也希望它能成为大家必不可少的widget工具之一~!

下载地址:http://achome-comment-flow.googlecode.com/files/achome-comment-flow.zip

Widget配置界面截图:
screen_shot_plugin

screen_shot_widget

screen_shot_widget_settings

另外,由于是初次开发WordPress插件,所以难免会有各种问题,如果您发现了各种bug或者有其他建议,请在本博客留言,或者去google code提交bug

Balsamiq Mockups的新用法

Posted March 6th, 2009. Filed under Internet Life

昨天给大家介绍了Balsamiq Mockups,由于我目前的工作和产品没有关系,所以这两天我一直在不断实践,怎么才能让它不局限在原型设计上呢?

昨天晚上用它做了一个下周的工作计划并且导成PNG格式的图片,由于是工作计划,所以我会经常不断去review,看看是不是有哪些地方安排不合理,或者有些东西已经完成了?

在review的过程中,我发现计划已经基本上稳定下来,不会再有什么变更,这个时候再开着软件不断查看就只能浪费系统资源了,于是我就把它导出的工作计划图片设成了桌面的壁纸,这样就方便多了,并且节省资源。

但这样也有一个问题,每次更新计划的时候都需要重新编辑bml文件,然后再重复导出和设为壁纸的动作,但是如果你的工作都是在计划内的,这样也还不错呢。

如下图:
tips_wallpaper

Balsamiq Mockups画原型图

Posted March 5th, 2009. Filed under FLASH Internet

昨天看了油茶会的《来,我画给你看…》,对其中介绍的Balsamiq Mockups非常感兴趣,因为其手绘涂鸦的风格让人耳目一新,丰富的组件也让web原型设计游刃有余,但79美刀的注册价格还是让人略为遗憾,怎么办呢?

于是找组内的flasher做了一下破解,一会儿的功夫就全部搞定,注册成功~!还发明了一个注册机,不过这里就不外传啦。

下面是我博客的自画像:
achome_blog

再奉上刚出炉的下周工作计划:
my_task_for_march

重要更新:
应Balsamiq Mockups的作者Peldi要求,我已经删除了博客上关于破解代码的说明,Peldi非常好,为中国用户提供了免费的注册码,如果需要,直接给他们发信即可。

人品计算器

Posted March 2nd, 2009. Filed under Internet

组内陈了然同学开发的人品计算器,同时已经发布到闪游吧,大家发给朋友们玩玩吧。