如题。将Hot friendsmailtocommenter插件分别更新到1.3.2和1.3版。 

其中hotfriends新版并没有添加新功能。只是修改了文件名,避免在一些Wordpress平台上可能发生的兼容问题。一直在考虑在后台新增些管理方面的功能,暂时没有写出来。

mailtocommenter方面主要是更正了几个Bug。这里谢谢网友Joe,他发现了@user选项的代码问题。以及在后台新添了几个设置选项。

1. 类似hot friends后台,新增了语言包的选项。用户可自行选择英文或中文。 

2. 新添按钮的样式的设置选项。添加了@reply的图片。用户可设置成和@reply一样的显示效果,即@user

2个插件的共同修正地方是,全部将原来插件内的functions.php更名为pluginname_functions.php,以避免在一些wordpress平台上可能发生的兼容性问题。这个问题是前几天在帮网友Donald查看时候发现的。这里想以Donald的站点为例,详细谈谈修正插件的原因,请其他使用非官方Wordpress的网友注意。并把解决问题的思路过程写出来,供网友们在查询wp问题时参考用。 

他的站点出现的问题是,一激活插件后,导致Mandigo模板的部分css代码无法加载,使得站点处于半裸奔状态。很明显是插件和模板的兼容问题。但深究下去,问题其实并不是那么简单。

首先,hot friends和mailtocommenter这2个插件并不涉及修改css等等。插件本身生成的html代码都符合w3c标准。所以怎么会造成css文件无法加载?这里先赞一下,Mandigo模板是相当的很不错,提供了相当多的选项供用户设置。而用户自定义这部分的css是通过php文件来动态实现的,即模板的style.css.php文件。问题就出在于,激活插件后,style.css.php这文件马上提示出现严重错误,报错退出。所以造成这部分css代码无法正常生成并被加载。而报错的原因竟然是functions.php里面的函数重复定义?Donald告诉,目前为止仅仅是启用我的这2个插件才会报错。于是分析下2个插件的共同点。原来都使用了这句代码:

include_once( ‘functions.php’ ); 

这样问题就比较明朗了。因为我个人写插件习惯,总是在插件目录下建立一个functions.php文件,然后将插件的其它函数整理放入。这个做法是参照官方模板文件的写法的,每个模板下都可以建立一个functions.php,然后将该模板的自定义函数放在该文件内,这样模板被激活的时候会自动激活这些自定义函数。同样,卸载模板时,这些模板的自定义函数也将被卸载。换句话说,functions.php内定义的是本地函数。

但不知道为什么在他的站点的WP上竟然会重复运行这句代码,以致造成wordpress会再次加载Mandigo模板下的functions.php文件,所以造成出现函数重复定义,以致无法执行style.css.php文件生成css代码。

找到问题根源后,解决方法也很简单,将插件文件夹下的functions.php重命名为pluginname_functions.php,然后将该代码改为: 

include_once( ‘pluginname_functions.php’ );

保存退出。重新激活插件。果然一切正常了。

是插件的问题?或是插件和模板的兼容问题?因为很多网友都在使用这2个插件,且并没有反馈类似问题,所以到此为止,我以为是后者造成的。然而,请接下来看。 

奇怪的是,我下载Mandigo模板,在本地测试,用的是wordpress官方2.6.2版,激活插件等,Mandigo模板的显示都没有问题。这就说明了,这2个插件,hot friends和mailtocommenter和Mandigo模板并不存在兼容性的问题。然而,为什么在Donald的站点上无法使用呢?继续对比下环境,php方面是没有问题,都是5.2版。唯一区别的是他站点用的是Wordpress中文版,具体是哪个中文版我没有仔细看。我用的是官方英文版。而为什么中文版会造成这个bug,我也无从查知。

按理,个人理解,制作wordpress中文版,仅需要的是修改了wordpress界面的中文语言包而已,并不需要涉及修改其它文件因为官方没有发布中文版或其它语种的官方版,中文版都是国内的wordpress爱好者在维护的。他们无私地为wordpress的中文化贡献了很多。很多中文版的发布都是紧跟官方版。可以想象这些爱好者为了wordpress的中文化牺牲了多少个人时间。这里向这些无私的网友们致敬。

嘿嘿,我在wordpress中文论坛当版主的那段日子内,常碰到一些网友的wp博客出现因中文版造成的问题,而我个人的观点也是想玩wordpress的话,最好是安装原汁原味的官方版。然后,根据自己的需要,自行修改代码,这样出现问题时,查错就比较简单了。再次强调下,我个人并不反对使用中文版,也并不是在诋毁中文版制作者。因为很多时候,一些中文版会修改些wordpress的源代码,(因为wordpress一些源代码的确有些效率问题。然而,wordpress考虑更多的是兼容性问题,为了给开发者制作插件或模板的其开放的api,效率和兼容,就好比是跷跷板。)。而正是这些修改后的源代码很容易造成问题。而大部分用户并不不会知道那部分代码被修改过,以致出现模板或插件的使用问题时,仅仅是三个字,“不兼容”。也容易造成问题根源很难被发现并解决。 

为此,这里对中文版制作者友情建议下,制作中文版时候,如果涉及修改了源代码,请务必将修改之处在发布时说明

最后,再次感谢你们的无私奉献。无意冒犯之处请见谅。

 

Feed Me


转载文章请注明转载自:ThinkAgain - Let's Blog!

引用地址:http://www.thinkagain.cn/archives/1024.html