• 欢迎访问乐趣公园网站,WordPress信息,WordPress教程,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站,欢迎加入乐趣公园 QQ群
  • Git主题现已支持PHP7版本,速度应该会提高不少,不过云落的网站本来就很快了,所以感觉不是太明显
  • 最新版Git主题已支持说说碎语功能,可像添加文章一样直接添加说说,新建说说页面即可,最后重新保存固定连接,演示地址
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏乐趣公园吧
  • 云落的淘宝店铺已经开张了哦,传送门:https://kimipet.taobao.com

三种代码方式彻底屏蔽WordPress垃圾评论

WordPress 云落 3年前 (2014-11-12) 907次浏览 已收录 8个评论
文章目录[隐藏]

多种方式联合组合,彻底屏蔽 WordPress 垃圾评论,让你的网站远离垃圾评论

三种代码方式彻底屏蔽 WordPress 垃圾评论

前言

前段时间写过一篇关于屏蔽垃圾评论插件的文章

WordPress 插件无忧墙:对垃圾评论说 NO

在这篇文章里面介绍了一款简单的屏蔽垃圾评论的方法,但是一个是不能彻底屏蔽垃圾评论,另一方面,处女座肯定想去掉插件的。今天云落给朋友推荐一个屏蔽垃圾评论的组合策略方案。

一、屏蔽指定 IP 的访问与评论

我们在后台都会看到评论的 IP 地址的,有些的垃圾评论的 IP 地址可能都没怎么换,那么看到发垃圾评论的 IP 地址果断屏蔽之,直接拒绝他们访问网站。
如果你们是阿帕奇服务器的话,打开根目录的.htaccess 文件,在最底部添加这段代码

Order Allow,Deny
Deny from 114.231.65.219
Deny from 218.28.140.186
Deny from 221.204.241.24
Deny from 114.231.67.56
Deny from 114.231.65.219
Deny from 220.200.48.183
Allow from all

其中的数字就是要屏蔽的 IP 地址,一行一个,添加 IP 地址之后访问就是一个 403 错误
三种代码方式彻底屏蔽 WordPress 垃圾评论

二、屏蔽含有英/日文的评论

如果你确认你的网站没有外国友人访问的话,那么就添加上吧,我们知道我们的很多垃圾评论都是含有英文字母和日文的,所以屏蔽掉外文就好了,在主题函数文件function.php添加以下代码即可

//评论过滤
function refused_spam_comments( $comment_data ) {
$pattern = '/[一-龥]/u';
$jpattern ='/[ぁ-ん]+|[ァ-ヴ]+/u';
if(!preg_match($pattern,$comment_data['comment_content'])) {
err('写点汉字吧,博主外语很捉急!You should type some Chinese word!');
}
if(preg_match($jpattern, $comment_data['comment_content'])){
err('日文滚粗!Japanese Get out!日本語出て行け! You should type some Chinese word!');
}
return( $comment_data );
}
add_filter('preprocess_comment','refused_spam_comments');

三、屏蔽含有关键词评论

其实以上两种已经基本可以解决绝大多数的垃圾评论了,再加上这个屏蔽关键词的方法就更完美了

//拒绝含有关键字的评论
function in_comment_post_like($string, $array) {
    foreach($array as $ref) { if(strstr($string, $ref)) { return true; } }
    return false;
}
function drop_bad_comments() {
    if (!empty($_POST['comment'])) {
        $post_comment_content = $_POST['comment'];
        $lower_case_comment = strtolower($_POST['comment']);
        $bad_comment_content = array(
            '水水更健康',
            '楼主再见',
            '路过',
            '这是一个关键词'
        );
        if (in_comment_post_like($lower_case_comment, $bad_comment_content)) {
            $comment_box_text = wordwrap(trim($post_comment_content), 80, "n  ", true);
            $txtdrop = fopen('/var/log/httpd/wp_post-logger/nullamatix.com-text-area_dropped.txt', 'a');
            fwrite($txtdrop, "  --------------n  [COMMENT] = " . $post_comment_content . "n  --------------n");
            fwrite($txtdrop, "  [SOURCE_IP] = " . $_SERVER['REMOTE_ADDR'] . " @ " . date("F j, Y, g:i a") . "n");
            fwrite($txtdrop, "  [USERAGENT] = " . $_SERVER['HTTP_USER_AGENT'] . "n");
            fwrite($txtdrop, "  [REFERER  ] = " . $_SERVER['HTTP_REFERER'] . "n");
            fwrite($txtdrop, "  [FILE_NAME] = " . $_SERVER['SCRIPT_NAME'] . " - [REQ_URI] = " . $_SERVER['REQUEST_URI'] . "n");
            fwrite($txtdrop, '--------------**********------------------'."n");
            header("HTTP/1.1 406 Not Acceptable");
            header("Status: 406 Not Acceptable");
            header("Connection: Close");
            err( __('卧槽,你好像在发广告吧 ̄□ ̄||') );//自定义错误信息
        }
    }
}
add_action('init', 'drop_bad_comments');

在代码里面添加关键词即可拒绝垃圾评论了,然后 happy

注意事项

[v_organge]第二,第三种方法默认的评论是采用 ajax 的方式评论的,通俗的说就是,无刷新出现评论结果,如果你的评论不是 ajax 的,需要将代码里面的err替换为wp_die,否则会出错滴,谢谢 WordPress 吧友的提醒[/v_organge]

后语

其实除了上面的三种方法之外,WordPress 自带的屏蔽垃圾评论的功能也可以用用,虽然比较弱,文中的第二个代码从本网站主题里面扣出来,其他代码整理自互联网

乐趣公园 , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:三种代码方式彻底屏蔽 WordPress 垃圾评论
喜欢 (3)
云落
关于作者:
无折腾,不生活,我是一个WordPress菜鸟,一个玩淘宝的卖家,欢迎你认识我,我是云落!
发表我的评论
取消评论
表情 加粗 删除线 居中 斜体 签到

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

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
(8)个小伙伴在吐槽
  1. 博主好,我采用的是多说,这个方法可行吗?
    alinwei2015-02-14 13:11 回复 Windows 7 | Chrome 40.0.2214.111
    • 云落
      布吉岛,我说的自带的评论,多说好像不需要吧
      云落2015-02-14 13:23 回复 Windows 8.1 | Firefox浏览器 31.0
  2. 博主 . .第三个方法中 wp_die() 输出错误信息, 按照第二种方法看, 应该是err()文章后面应当说明一下. ajax 评论用 err() ,否则用wp_die()ps:wp吧友.
    小武2014-11-18 11:56 回复 Windows 8.1 | Chrome 38.0.2125.122
    • 云落
      多谢,测试了下,是的
      云落2014-11-18 13:31 回复 Windows 8.1 | Firefox浏览器 31.0
  3. 日语滚粗……这…… :arrow:
    家香2014-11-17 12:02 回复 Windows 7 | Chrome 38.0.2125.111
    • 云落
      :lol: :lol: 嘿嘿
      云落2014-11-17 12:14 回复 Linux | Safari浏览器 534.24
  4. 前來支持一下~挺實用的!!PS:歡迎訪問小站 WWW.AREFLY.COM 哦~
    超級efly2014-11-16 13:27 回复 Mac OS X | Chrome 38.0.2125.122
    • 云落
      目前使用这几个方法
      云落2014-11-16 14:16 回复 Windows 8.1 | Firefox浏览器 31.0