本站首次接入Google Analytics
本站创立始于2008年三月,估计最老的一批读者现在几乎已经都不再来了,一开始,我的这个小站就专注于WordPress的周边一些话题,包括主题定制,插件开发,DIY,hacks,插件汉化等等。最早,域名不是现在这个,是charlestang.cn,那是一个在国内注册的域名(你们懂的),后来,随着博客的成长,我发现我的博客主要内容都已经偏向了WordPress,其他技术内容已经非常少了,那个时候,我做出了一次结构的重大调整,就是将跟技术无关的内容都移出了本博客,专门开辟了个人生活内容博客,而这个博客则专注于WordPress相关的内容。
[插件开发]获知文章状态变化
文章(post)是 WordPress 博客的核心价值所在,围绕一篇文章的增、删、改,我们可以开发很多有用的插件。近来,由于维护一款插件的需要,我碰巧研究了一下围绕文章发布流程而设立的一些钩子(hook)。微有所得,记录备查。
事情的起因是插件中的一个函数hook到了一个action上,名字是publish_post,顾名思义,在文章发布时候被激发的。为了要更清楚地掌控这个action,我想在源代码中,把触发点给找出来,这一找,问题来了。理论上,我们hook任何action,WP内部都会有对应的do_action来激发这个钩子,这一次,一搜,根本没有publish_post,那就有点小麻烦,说明具体激发哪个钩子,是运行时决定的,再明白点说吧,这个action的名字,应该使用变量拼出来的,所以我们直接搜publish_post很难找到调用点。
[WordPress Tips] 教你3行代码隐藏Admin Bar
从WordPress 3.1开始起,增加了一个新的组件,就是Admin Bar(管理工具条)。如果你登录了自己的博客,在首页上就会看到顶部出现了一个黑色的工具条。里面有一些常用的功能。可以直达后台。虽然说,这是一个很方便的功能,但是我想,并非每个人都会喜欢这样的东西。我就很不喜欢。研究了一下源代码,发现这个功能并不能通过在wp-config.php中使用常量定义禁用。必须使用类似插件的功能才能禁用该功能。不过呢,就像本文标题说的那样,使用插件未免太不值当了,毕竟为了3行代码,写个插件,还是很不划算的。估计等3.1发布后,会有某个同学将这个小功能整合到自己的插件中的。如果等不急或者不希望装太多插件的同学,我这里提供一个轻松挪掉Admin Bar的方法。如下的三行代码,请加入到你使用中的主题的functions.php文件中,如果没有这个文件,那么请自己创建:
给WordPress增加苹果中的Dock菜单效果
苹果操作系统的Dock菜单,可能是个人桌面操作系统中,最成功的一种UI设计了。这个交互设计效果优美,使用简便,一目了然。无数爱好者,将Dock菜单的交互设计和视觉效果移植到了各种各样的系统和平台上。
在Web上实现Dock菜单,也不是什么新鲜事了,包括我以前想要汉化过的一个favourate类插件,也都是Dock的理念。
jQuery有个插件,就是专门实现这个Dock菜单的效果的。在这里可以看到例子。文章标题里说的,是一个WordPress的插件,插件的名字翻译成中文的话,叫动态WP鱼眼菜单。我不知道为什么作者要取这么难听的名字,而且并不让人一目了然,既然Dock已经是几乎人尽皆知的效果了,何必再去自己发明名字。不过呢,这并不妨碍作者实现了这么一个使用简便的插件。到这里可以看效果。
试用Adobe Contribute
今天下载了Adobe Master Collections,里面有一款Contribute,就是我现在用的了,一搜介绍,竟然是写博客的工具,真是万分震惊啊。特此试用。
在插件管理页面给你的插件添加“设置”链接
在插件管理页面,每个插件下面有2-3个Action link,包含了用户可以对该插件进行的几种操作。在插件为禁用状态时,可用的操作有:Activate(启用),Edit(编辑),Delete(删除);在插件为已经启用的状态下,默认有两个可用的操作:Deactivate(禁用)和Edit(编辑)。如果我们在这个列表里仔细观察,就会发现,有些插件会多出一个Settings(设置)操作。本文记录了,为插件添加Settings link的方法。没有什么过多的描述,直接放代码了。在插件主要文件中(包含了插件信息注释语句的那个文件),使用下面的代码,就可以为这个插件添加一个Settings link了。
[插件开发]:检测WP插件的运行环境
WP的插件在开发完成后,会在用户的服务器上运行,而用户的服务器环境基本上可以用千奇百怪来形容。开发过程中,在本地运行得好好的插件的,一旦安装到用户的服务器上,也有可能变得无法运行。
所以,作为WP插件的开发者,最好不要对插件最终的运行环境做任何假设。而且,最好能够在插件被启用的时候,进行必要的检查,给用户以提示,对于自己没法兼容的问题,应该明确指出,避免用户遭遇不必要的麻烦。
在我个人的WP插件开发过程中,我主要遇到的问题,基本上都是PHP相关的问题。
[插件开发]:后台管理页面脚本按需加载
插件的后台管理页面的主要功能是协助用户设定插件运行时参数,一般都需要用户进行交互,这就少不了需要客户端脚本的参与(主要是js脚本,当然还有配套的css样式表)。
WP的后台本身就已经加载了许多的脚本,包括各类类库和基础功能的脚本。过多的脚本文件引入,会增加HTTP请求,增加流量,拖慢速度。好在,WP的后台已经采取了相当多的措施,来管理后台加载的脚本。首先是用wp-dependency管理依赖关系,用load-scripts来压缩、并加载脚本,使得各种类库被合并到同一个文件中进行加载,节省了HTTP请求数量和流量。
WordPress插件:CSDN Shared Items
我在CSDN上分享了很多东西,一直想把那个列表也在博客上罗列一个,一直就没有付诸于行动,昨天一发狠,终于弄了。
等于昨天几个小时,今天几个小时,搞出了一个小插件。就是右侧的一个小挂件。点上去就会链到CSDN的下载页面。
算是我把一年前的债还了。真开心。
如何才能按需加载脚本?
本文提出问题,并不解决问题。
我在研究Extended Live Archive(ELA)插件的代码,发现一个问题,这个问题具有一定的共性,而且,我现在也没有什么好的解决办法,所以我把它描述一下,看看有没有高人高见。
怎样撰写Features List
当开发好一款插件的时候,要为插件撰写一个readme.txt文件,这是让用户了解你的插件的最好方式。很多插件都会在readme.txt的第一个section(description)里,附上一个简单明了的features list,以便用户可以快速扫描你插件包含的功能,决定是否选用。那么应该如何撰写features list呢?本文为您介绍。
我不是一个撰写readme.txt的专家,但是我经常需要做这件事情,我自己也很不在行,从来没有仔细研究过这件事情,今天在这里写下的是我第一次研究的笔记。对本文内容的权威性,大家请自己斟酌。
Simple Paypal Donate插件
Simple Paypal Donate是一款在博客中插入捐赠按钮的插件,但是其功能并不尽如人意,本文记录我对这款插件的改进意见。
WordPress插件:选项查看器
选项查看器是一款能够查看WordPress选项的工具,使用它,你可以浏览每个存储到数据库的选项的值,串行化的数据会恢复其原貌,此外,您可以使用PHP语句来微调选项的值。这是一款开发调试辅助工具。Options Inspector is a tool with which you can list out all the options in your database, view a certain one in detail, and alter exactly a certain part of option value. It is mainly designed for plugin developers and theme designers.
本站开设论坛
自己开设论坛,是我蓄谋已久的事情了,不过一直停留在计划上面,我想,如果不狠下心来执行,任何事情都没法推进。趁着这次小长假,我牺牲了休息,终于推动了事情的进展。
论坛本来想选Discuz的,无奈,学习成本太高,于是还是选择了bbPress,和WP同一个体系的微型论坛。代码看着分外眼熟,也有那么几分亲切,操作依然简便。功能嘛,真的不敢恭维了,比一无是处稍微强点。
目前开设四个论坛:
[WP开发环境]在NetBeans中配置FTP
本文介绍了如何在NetBeans IDE 6.5.1 for PHP中配置FTP,以搭建一个便捷的WordPress 主题、插件开发环境。
WordPress主题:GoogleCode
本文发布了一款还在持续开发中的Hybrid主题框架的子主题GoogleCode。该主题模仿GoogleCode样式。GoogleCode WordPress主题是一款教学功能大于实用价值的教学主题,希望帮助各位同学找到定制Hybrid主题的起点。
建立WordPress测试环境
本文记录了建立WordPress测试环境的一种实践。
Flash Mp3 Player FAQ
Author of this document: Snowblink
Actually, I'm lazy, and I hate paper work. My dear friend, Snowblink, created this document. Thank her very much!
非常感谢snowblink的辛勤工作,我不知道如何才能用英语表达对你的感谢。所以用中文再说一遍!
WordPress 开发资源
今天刚看到几个WordPress开发资源,觉得很不错~在这里记录一下。
WordPress phpDoc
WordPress内部使用phpDoc的语法进行注释,这是WordPress.org为其生成的文档。

Most Commented Posts