首页 > 【雨松MOMO生活研究院】 > WorldPress粗略过滤垃圾评论(求指导)
2014
07-01

WorldPress粗略过滤垃圾评论(求指导)

其实我对Worldpress基本是一窍不通,我的小博客大概是2012年开通的,当时看见了一个比较好的评论框叫多说,装上以后感觉非常好用,我看它里面有垃圾过滤器。我傻傻的以为它会帮我真正过滤垃圾,直到今天我才明白多说的工作原理。

1.用户输入评论

2.直接写入你的本地数据库(假如你没有装垃圾过滤器,那么你就悲剧了因为所有的评论都会写在你的本地)

3.在上传到多说的服务器上,多说它自己做了垃圾过滤器,但是是过滤上传到它服务器上的评论,和你的本地无关。。

4.你网站上多说评论框里面的评论全都不是你本地的,而是它服务器上的。

以前一直都没怎么注意,前几天更换了网站的主题,悲剧的事情来临了。我的小站一共占了300M的容量,其实文章占100M,TMD评论就占了200M. 多说上只产生了5000来条评论,也就说真正的评论应该只有5000多条才对,可是我的本地数据库里却记录了50多W条评论。。。。我的天哪。。我一定要想办法把垃圾评论删除。。

我强烈建议大家建站的时候就装上Akismet垃圾过滤器插件,这个插件非常好用,它可以把用户输入的垃圾评论自动过滤掉。但是问题是你必须装了它以后才会过滤,可是我以前一直都没装它,怎么过滤呢?

Worldpress的评论有两个状态,1个是通过的评论状态,还有一个是待审核的评论状态。如果想过滤以前产生的垃圾评论你必须要把需要检查过滤的垃圾评论状态设置成待审核状态才行。看到了吗?我这里有50多W条垃圾评论。。恐怖吧。。 点击 检查垃圾评论 按钮 开始等待吧。。。

WorldPress粗略过滤垃圾评论(求指导) - 雨松MOMO程序研究院 - 1

如果你和我一样设置worldpress自动通过审核,那么就悲剧了,因为之前所有的评论全是审核通过的状态,所以我们要先把所有的评论全部设置成待审核状态。

打开你的phpmyadmin面板,选择你的数据库。执行

//把所有通过了的评论设置成待审核状态

update wp_comments set comment_approved = ‘0’ WHERE comment_approved = ‘1’

然后你就可以点击检查垃圾评论了,,我试了一下检查的太慢了,半个多小时才能检查出来500多条。。。所以我放弃了。

然后我想干脆把我本地的数据库全部清空,然后再把多说的评论全部同步在我的本地数据库里。于是我使用

//把本地所有通过的评论全部清空。。

DELETE FROM wp_comments WHERE comment_approved = ‘0’

如下图所示,我试图把多说的评论同步在我的本地数据库中。。

WorldPress粗略过滤垃圾评论(求指导) - 雨松MOMO程序研究院 - 2TMD,悲剧的事情又来了,点了没用根本同步不到我的本地数据库里面,我去问多说的客服他们告诉我你的服务器配置有问题,但是也没能告诉我怎么解决,我再问他们他们一直说 非常抱歉,您的这个问题我们无法解决。。。

再一次是失败。

于是我仔细看了一下评论中的垃圾评论,基本上垃圾评论全是外国网站过来的,而且评论的内容全部都是英文的。而正常的评论都是有中文+英文的形式评论的。于是我想干脆我把评论里全部是英文的直接删除了了。

//把所有通过了的评论设置成审核状态

update wp_comments set comment_approved = ‘0’ WHERE comment_approved = ‘1’

//把评论中纯中文 或者 中文加英文的字符设置成 通过状态

update wp_comments set comment_approved = ‘1’ WHERE length(comment_content) != character_length(comment_content)

//把所有未审核的评论删除
DELETE FROM wp_comments WHERE comment_approved = ‘0’

执行完这三条SQL语句,我的垃圾评论过滤掉了很多,从50多W变成了现在9W、还是有很多垃圾评论,不过我现在已经满足了。。希望各位看客如果有更好的办法,请一定要告诉我。

2014年7月2日

今天我又想到了一个方法,其实你的垃圾评论大都数都是由同一个IP发出来的,那么我们如果能找到博客里面评论数量最多的IP,然后把他们的所有评论全部干掉,那么问题也就迎刃而解了。

//找到查询评论最多的前20个IP
SELECT comment_author_IP , count( * ) AS count FROM wp_comments GROUP BY comment_author_IP ORDER BY count DESC LIMIT 20

WorldPress粗略过滤垃圾评论(求指导) - 雨松MOMO程序研究院 - 3

count就是它评论的总数量,为了确保没删错评论,如下图所示,你最好在评论页面搜索一下。

WorldPress粗略过滤垃圾评论(求指导) - 雨松MOMO程序研究院 - 4确定无误以后,执行下面SQL语句

//删除指定IP的评论
delete from wp_comments where comment_author_IP = ‘23.89.192.178’;

OK 大功告成。。

 

雨松MOMO提醒您:亲,如果您觉得本文不错,快快将这篇文章分享出去吧 。另外请点击网站顶部彩色广告或者捐赠支持本站发展,谢谢!

--

最后编辑:
作者:雨松MOMO
专注移动互联网,Unity3D游戏开发
捐 赠如果您愿意花10块钱请我喝一杯咖啡的话,请用手机扫描二维码即可通过支付宝直接向我捐款哦。

  1. 试试这个插件WP Clean Up,清理各种垃圾,包括你说的待审评论,灰常的好用,国人制作,百度第一条就是