修正了一个博客插件的语法问题

更新:官方已经在今晚火速更新,虽然我觉得用处不大了,因为这句代码会直接导致网站无法登陆,对于没有技术能力的博主来说,除了重装wordpress并导入备份以外,基本无法恢复。鉴于该插件的广泛应用,这次算是非常严重的技术错误。
1.pic
修改内容只有一行代码,源代码的第703行。修改方法也与朱老师教导的完全相同。

我的博客一直托管在固定的服务器上,这些年没有变动,对我来说很方便,定期付费即可。但是有一个问题,就是php版本较为落后,一旦使用了不向前兼容的新版本语法的代码后,就会出错。
这不,今天就出了一回事。
我照常打开博客,删除了一些垃圾留言(照常没有任何有效留言,我博客上一条真人评论已经是3个月之前的事了),检视了一遍趋近于零的流量,更新了一下对Google爬虫友好的插件『XML Sitemap & Google News feeds』。然后就宕机了。博客无法打开,显示了一串错误信息。

Parse error: syntax error, unexpected ‘[‘ in /home/aliengu/public_html/wp-content/plugins/xml-sitemap-feed/includes/class-xmlsitemapfeed.php on line703

出现了电脑无法读懂的方括号——显然是代码问题,于是登陆几百年不上一次的cPanel,找到文件,下载下来,看了一下703行到底是什么鬼。

$allowed = ['zh-cn','zh-tw'];

问题就出在这句代码上。然而我不懂php啊,看上去似乎是非常正常一个语句,查了半天php的方括号用法,也没什么头绪。最终还是去问了朱老师,朱老师看了下说,修改成以下语句试试:

$allowed = array('zh-cn','zh-tw');

于是改代码,保存文件,上传文件。一系列步骤之后,博客神奇恢复正常。
对此,朱老师做出了经典的评论:

看那么舒服的语法一点也不像php 哈哈

这个问题就这样解决了。各位朋友,有空可以升级以下php,或者研究一下php新老版本之间的语法差别,关键时刻能救命噢!

Tagged : /