防御wordpress垃圾评论

站长杂谈 7276 Views 12 Comments

上周博客突然不能访问了,问了下服务器商说是我流量太太,影响到了服务器的正常运行。我草,不至于啊。下载带本地一看,两千多垃圾评论。我才明白应该是垃圾评论导致的服务器的负载过高。然后我没办法只好暂时关闭了评论。然后网站各种搜索解决办法,总结起来:垃圾评论不可能测底清除的,做的再好还是会有的,只能自己手动清理了。但是不至于导致服务器负载过高挂掉。

我用了两个方法,这里给分享下,因为迟早你会用到的,哈哈!!

1、屏蔽所有全是英文(不包含汉字)的评论。

只需修改你当前使用的主题目录下的functions.php就可以了,而且不会受到的WordPress升级的影响。具体修改:打开当前使用的主题目录下的functions.php,在最后加上下面代码。这个可以屏蔽很多纯英文的垃圾评论,垃圾评论中英文占比很大的 。

function scp_comment_post( $incoming_comment ) {
    $pattern = '/[一-龥]/u';

    // 禁止全英文评论
    if(!preg_match($pattern, $incoming_comment['comment_content'])) {
        wp_die( "You should type some Chinese word (like \"你好\") in your comment to pass the spam-check, thanks for your patience! 您的评论中必须包含汉字!" );
    }
    return( $incoming_comment );
}
add_filter('preprocess_comment', 'scp_comment_post');

这里有一点需要注意:

如果使用的是Ajax 评论,需要将wp_die 改为 err ,不然页面会有错位现象。

保存后就完成了。试着输入全英文评论,你看看显示什么?

效果如下面:

You should type some Chinese word (like \”你好\”) in your comment to pass the spam-check, thanks for your patience! 您的评论中必须包含汉字!

2、修改wp-comments-post.php的文件名,让机器人找不到评论入口。(参考威言威语)

我们都知道,绝大部分的垃圾评论都是通过post网站根目录下的wp-comments-post.php来提交垃圾评论的,我们让其找不到post的入口,那么它就不能发垃圾评论了。对于普通用户而言,正常情况下,不管你使用的什么主题,通用的解决方法是:

将博客根目录下面的wp-comments-post.php改名,改成什么都可以,比如 no-comments-post.php

打开主题的里面的comments.php,找到代码里面的 wp-comments-post.php ,将其改为 no-comments-post.php

改的名字跟之前修改的名字一样就行了,建议改的不要这么规则,防止垃圾评论发布机制升级通过什么正则匹配来猜某些类似的地址。

这个主要就是通过修改评论路径,让垃圾评论发表找不到入口,从而屏蔽垃圾评论,目前我使用下来还是很不错的,如果你的WordPress也有很多垃圾评论,不妨也用用这个方法。

 

相信通过上面的方法,垃圾评论不能说百分百禁止,至少不至于服务器有压力了。好了,我的博客可以评论,又能与大家交流了。开心,哈哈!

转载请注明:一只羊博客 » 防御wordpress垃圾评论

分享到:
(1)

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

网友最新评论 (12)

  1. 能起到过滤作用就很不错啦

    小媒体2014-11-13 14:52 回复
  2. 有什么办法防御typecho垃圾评论呢。

    歌词找歌名2014-10-09 19:54 回复
    • 不好意思,没研究过这个系统。帮不了你呢。

      一只羊2014-10-13 09:25 回复
  3. 用wordpres自带的插件就可以解决。那种给functions加代码的试过n种。还是不行。

    八问猫博客2014-10-06 12:42 回复
    • 自带的只能审核垃圾评论,不能阻止提交,我的目的是直接阻止垃圾评论提交到服务器。我用上面的方法很不错,目前来说再也没有垃圾评论了。

      一只羊2014-10-07 19:18 回复
  4. 博主 我只想知道你这边的这些背景音乐叫啥名字 很好听 求曲名

    雪碧2014-10-05 11:58 回复
    • 名字我不知道,我有mp3文件。

      一只羊2014-10-07 19:16 回复
      • 那能不能都发给我呀 52804721@qq.com 先谢谢啦

        雪碧2014-10-10 15:20 回复
        • 已经发你邮箱了,注意查收。

          一只羊2014-10-13 09:28 回复
  5. 恩,当时搜索的时候也看到过,不过我现在这样处理后,一周以来零垃圾回复。谢谢你的建议。

    一只羊2014-09-28 21:25 回复
  6. 最好的解决方案还是删除wp-comments-post.php文件,然后改用ajax提交留言(要在主题上做一下数据处理接口)。

  7. 测试可以不

    一只羊2014-09-22 10:13 回复