近期wordpress故障排查及修复纪实

现在越来越没时间和精力折腾,但博客时不时出现的一些BUG不得不认真对待,否则越积越多,结果很可能是彻底罢工。近期出现的一些故障,一一记录在案,供参考。

1、主题报错的问题

故障描述:之前用的翠竹林主题,美观大方,功能完善,感觉还不错。随着wordpress和PHP版本的不断升级,该主题涉及的很多函数,都不再被支持,前端显示没问题,后台出现一些错误提示很烦人。

故障原因:老旧函数不再被支持。

解决方案:改换主题。

2、文章和页面无法更新的问题

故障描述:在对旧的文章和页面进行修改后,点击“更新”按钮,数据无法提交到服务器,更新无法完成。新建文章和页面没问题。起初是在更新友情链接页面时发现的,以为是PHP的配置导致的,反复修改post包的大小限制,查看各种错误日志,都未解决。一度以为是VPS的配置问题,差点一气之下重做系统。偶然间发现用手机更新是没问题的,才怀疑是wordpress自身问题。

故障原因:我就不卖关子了,该问题是插件wp-wuper-cache导致的。之前我用过一段时间这个插件,在停用后,wp-config.php这个文件的如下配置:

define('WP_CACHE', true);
define( 'WPCACHEHOME', '/www/wwwroot/chidd.net/wp-content/plugins/wp-super-cache/' );

我删掉了WPCACHEHOME后面的路径,没有删除这两行语句,也没有删除插件的全部文件,导致一些代码逻辑之间的冲突。

解决方案:删掉wp-config.php这个文件中关于cache的所有语句;删掉wp-super-cache这个插件的所有文件即可。

3、升级到PHP7.2之后的MYSQL函数错误问题

故障描述:之前看到大致升级到PHP7就心痒升过一次,结果因为主题函数过时,各种报错,吓得我赶紧滚回PHP5.6。这次决心升级,先更换了主题,就没有报错,然后发现评论回复通知功能失效(用的我爱水煮鱼老师开发的wordpress中文工具箱)。于是改用水煮鱼老师开发的另外一款用wordpress评论回复通知插件(Comment Reply Notification ),安好后报错,提示是MYSQL的问题。

故障原因:PHP7的最大变化就是mysql_* 系列函数在php7里全部移除了,所以原因就在这里。

解决方案:按照这篇文章的指导,将报错文件相应行的mysqlescapestring() 函数改为addslashes() ,故障解决。

4、WPLANG 函数不再被支持的问题

故障描述:后台出现Notice: Use of undefined constant WPLANG的错误。这个和故障3是同一个插件爆出的错误。

故障原因:在评论回复通知插件的主文件最后面,有一大段代码判断当前wordpress的语言设置,如果不是中文的话,就显示一些特定的RSS和广告。其中判断语言的函数叫WPLANG,经过查询,官方自2014年开始就不再支持WPLANG函数了,所以会出错。

解决方案:直接删掉Comment Reply Notification插件主文件最后一大段代码即可。注意删除时保留前后文相关的PHP标签代码以免报错。

29 评论

    1. 评论回复跟你用的同一款插件,哈哈。我直接把你发给我的邮件源代码复制下来改的,所以排版风格都是一样的。

    1. 谢谢哥提醒!一天没看博客,竟然被这些辣眼睛内容占领了,吓我一大跳。
      顺便说下,求各位大神高抬贵手,别处发帖去吧。

  1. WordPress喜欢升级,对于安全这块倒是好事,不过就是苦了各种主题和插件了,感觉现在已经过了以前喜欢折腾的时间了。

    1. 感觉还是代码太庞大臃肿了,所以BUG不断、升级不断。
      我也难得折腾,下次再出问题的话,我都想换一个极简的主题了。

  2. 感觉你真能折腾,话说那个缓存插件,我印象中停用、删除之后配置都会恢复正常的,你居然遇到删不干净的问题,好奇你当初是怎么删除的……

    至于主题的事嘛,我用的都是官方主题,代码规范,也少很多麻烦。

  3. 来看看,我也是每次换主机升级php,博客程序都要捣鼓一阵子呀~

    大猫兄好久没来个站了~不知道什么原因,我思念了@ω@

    1. 是啊,最近忙,我博客也很少更新了。其实个站商店倒是经常去,只是懒得登陆,我一般看看更新的RSS。

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注