Proudly Powered by WordPress and FireFox
22 Aug
这是一篇分享调试WordPress插件经历的文章,面向的读者是PHP、WordPress插件开发新手,由于我在撰写本文之前连PHP的语法都不懂,可以说是完全“黑箱”分析出来的,所以内容非常浅陋。
Simple Tags可以说是WordPress用户必备的插件之一,这个插件有一个功能叫做Auto Link Tags,用大白话说就是给你文章中出现的标签加上链接。
但是,这款插件是个老外写的,不能正确地支持中文的标签,虽然Leo制做了Simple Tags的汉化版,但只是UI支持中文而已,依然不能正确支持中文标签。我决定要把这个问题解决掉!q s 本文来自Awaken的http://rainy-bow.com
求人不如求自己!本文来自Awaken的http://rainy-bow.com
下面,作为本地玩转WordPress的方法一文的实际应用,
1.给本地的WordPress安装上Simple Tags插件,可以直接将插件解压到Easy-PHP(不知道该为何物的请先阅读本地玩转WordPress的方法)的安装目录中,并进入WordPress后台激活之 本文来自Awaken的http://rainy-bow.com
2.仔细阅读Simple Tags的各个文件,可以发现位于2.5(2.3,视WordPress版本不同而不同,请大家各取所需)文件夹下的“simple-tags.client.php”中包含autoLinkTags这个函数,那么我们就仔细研究这个文件
3.用最传统的加print语句来调试插件,下面附上我所增加了一大堆输出语句后页面的显示效果
我们注意到这样一段: 本文来自Awaken的http://rainy-bow.com

再去看看源代码,根据前后的输出信息(is not inside anchor tags, not matches等等)的提示,我们确定了问题出现在这一段代码中:
这显然是preg_match(“#<\s*a\s+[^>]*>#i”, $token)返回了“假”,这是为什么呢?通过查阅资料,我得知了$match中出现的\b表示单词的边界,那会不会是这里的问题?因为中文都是连续的字符,不像英文,字与字之间用空格间隔。
于是,我尝试把 本文来自Awaken的http://rainy-bow.com
这一句话中的\b全部去掉,问题果然就解决了!
不过这样的话英文字符就无法正确匹配了,于是得分别处理标签是中文还是英文的情况。
由于篇幅的限制,也因为本文重点在定位Bug的过程,这里就不详细介绍修改的过程了,有兴趣的同学可以自己去研究一下代码。大家可以直接猛击链接去下载支持中文标签的Simple Tags,如果你发现有什么Bug请与我联系!
标签: EasyPHP, Simple Tags, WordPress, 插件, 调试
才8条评论 for "使Simple Tags支持中文标签"
[...] Original post by Awaken [...]
[...] 一切准备工作已经就绪了,稍后我会给大家带来我是如何在这个平台下调试Simple Tags的,敬请期待! 标签: EasyPHP, Simple Tags, WordPress, 插件, 调试 [...]
这个autolinks的东西我曾经做过, 很多人都不喜欢我就搁置了。 你可以看看我这里的文章, 比simple tags的强大。
我的新插件预览
[Reply]
Awaken Reply:
August 22nd, 2008 at 5:15 pm
确实很强大,有没有继续开发下去呢?对于页面浏览还是很有意义的。有些博客是不适合feed的。
我这里只是为了锻炼一下调试插件的能力。
[Reply]
偶爱偶家 Reply:
August 23rd, 2008 at 11:07 am
没有, 当时的评论你可以看到很多人都很反感, 所以就放弃了.
[Reply]
不错啊。找了很久了,
[Reply]
Awaken Reply:
September 12th, 2008 at 12:48 pm
如果喜欢欢迎订阅我的博客!
[Reply]
我猛击了很久都没下下来,还好有迅雷,建议大家用迅雷下。
[Reply]
Leave a reply