WordPress博客再现异常,评论无法执行删除等操作,提示“发生了无法识别的错误”!(已解决)

由于到北京工作一段时间,比较忙,胖爷牺牲了很多私人时间,其中也包括个人开发和博客更新了。好在已时日过半,忙也忙过,玩也玩过了,能偷得半日闲。

有时间了,也会想想家乡。毕竟日出江花红胜火,春来江水绿如蓝。能不忆江南?

问题:

上周突然开启电脑开了下博客,果然几个月来被垃圾评论塞满了,赶紧想着清理吧,却发现无法操作了,表现为将评论“移到回收站”,1秒后又跳回原位,完全无效,操作“批准”,也是一样,什么都动不了。

仔细检查页面上是否有提示,拉到底下,果然有一行字“发生了无法识别的错误。”,然而这个提示对我而言几乎没有帮助,唯一的作用,就是告诉我,WordPress又出错了,但究竟错哪呢?

分析:

WordPress出错,无非就是网站程序文件出错,或者数据库出错。

一、来北京三个月几乎没有动过博客,更别提修改网站程序文件了,如果是前者,那一定被人攻击了,但胖爷的破网站,谁能看上呢?想来去年年中胖爷做了一次整站备份,之后也没改过多少东西,兜底还有备份可以恢复呢。

二、如果数据库出错,则有可能是垃圾评论给塞爆了,问题是在WordPress也无法操作删除评论呀,抱着试试的心态,进空间后台看了下数据库状态,果然是满了。(MySQL空间: 20.00M/20.0M (100.02%),别鄙视胖爷用的是MySQL,更别鄙视才20M空间呢。好吧,其实是胖爷比较穷,主要还是小站正常情况用不了那么多。)

解决:

既然发现了高度疑似的问题对象,就着手解决方案吧。查了一下数据库表信息,就是2个占比容量大,一个占了9M多【wp_commentmeta】,一个占了8M多【wp_comments】,显而易见都和评论有关,再次印证了前面的推测。

正好趁此机会,百度学习一下:

【wp_commentmeta】表(破文件)是因为启用了Akismet插件,产生的非常多的log记录。虽然Akismet是官方插件,但有些行为还是坑爹离谱,即使在WP控制台删除了垃圾评论,还是会在数据库留下大容量的冗余垃圾。有人说直接删除这个表都可以,不过位于安全起见,还是采用清理的方法。

想看Akismet产生了多少数据?进入 phpMyAdmin,直接运行下面SQL语句:

SELECT COUNT( * )
FROM `wp_commentmeta`
WHERE `meta_key` LIKE '%akismet%'
如果要清理这个破表,就选中wp_commentmeta表清空,或运行SQL语句:
TRUNCATE TABLE `wp_commentmeta`
执行后就清空了【wp_commentmeta】表,空出很多空间。但当场回到WP控制台,仍无法删除评论,睡了一觉第二天一早就好了,或许还有些延时吧。

【wp_comments】表保存你站点上所有的留言,包括所有通过验证的留言,等待审核的留言,垃圾留言和从 其他文章发送过来的 trackbacks 和 pingbacks。(胖爷看着就有点吓尿的感觉,没敢动它。)

优化:

Akismet的代码,会每隔15天删除一次数据。如果垃圾评论非常多,就麻烦了,15天的间隔太长,最好优化下,在主题的functions.php中添加代码:

add_filter('akismet_delete_commentmeta_interval''set_akismet_interval');
function set_akismet_interval( $interval ) {
    return 2;
}
设置成每隔2天清除一次。

《WordPress博客再现异常,评论无法执行删除等操作,提示“发生了无法识别的错误”!(已解决)》有4个想法

www.zhizhuowz.com进行回复 取消回复

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

您可以使用这些HTML标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>