WordPress防垃圾评论

Nicky 3.5K 1
摘要:

最近的垃圾评论太猖獗了,经常一天能发到十几到几十个垃圾评论,我博客默认发了评论自动发邮件给我,所以我的手机就不停的响啊响,没办法,从网上搜索相关资料,整理了一些办法,希望能够帮助到大家。

最近的垃圾评论太猖獗了,经常一天能发到十几到几十个垃圾评论,我博客默认发了评论自动发邮件给我,所以我的手机就不停的响啊响,没办法,从网上搜索相关资料,整理了一些办法,希望能够帮助到大家。

防止垃圾评论最有名的就是插件了,我先从插件开始说起,但是我最终解决问题还是用的最后一段代码,如果大家是抱着马上解决问题不费力气的想法可以直接拉到底部观看。

思路

防止垃圾评论有以下三种思路:

一种是删除或是更改wp-comments-post.php这个文件,因为很多垃圾评论群发器就是通过这个接口来发送垃圾评论的,删掉或是屏蔽到这个文件自然问题就解决了。

另外一种实用的办法是禁止全文非中文字符,这种办法效果也很显著,因为很多垃圾评论都是国外的居多,只有包含了中文字符的评论才能成功,这样就减少了很多垃圾评论,但是我发现日文的垃圾评论是屏蔽不掉的,不过所幸这种只是零星的一些小杂鱼。

最后一种就是加验证码,加了验证码以后自动发垃圾评论的就没有办法了。

插件法

 

Akismet

插件网址:http://wordpress.org/plugins/akismet/

这个是Wordpress官方的一个插件,需要注册码才可以使用,网上分享的很多注册码都失效了,我这里也就不拿出来分享了,否则早晚也会被K掉,大家还是自己去注册一个吧,不收费。这个插件也是目前我在用的插件。

但是我发现这个插件可以屏蔽大部分垃圾评论,但是最近也有很多评论绕过来,这也是我之所以需要重新找一些防止垃圾评论新方法的原因。

Some Chinese Please!

插件网址:http://wordpress.org/plugins/some-chinese-please/

它可以有效地拦截内容中不带有中文字的comment和trackback(pingback),不写入数据库中,可有效地减小spam对blog服务器的无谓使用。两年未更新了

 

WP Anti Spam

插件网址:http://wordpress.org/plugins/wp-anti-spam/

国人玻璃泉开发的一个插件,集成了中文评论,可以使用多种方法防止垃圾评论,比如屏蔽关键字、姓名邮箱加入黑名单、字数控制、禁止链接、没有Gravatar禁止评论等。

 

Fancy Captcha

插件网址:http://wordpress.org/plugins/wp-fancy-captcha/

利用验证码来进行控制垃圾评论,不详细叙述了。

插件方法基本上最省时省力,但是基本上也是遵循前面三种思路的方案。把插件装上去,启用配置就可以了,但是就是会拖慢Wordpress速度。

删除/禁止文件

评论模块使用ajax异步提交插件或直接集成到主题中,然后删除Wordpress程序根目录的wp-comments-post.php文件。

下面的一段代码是不删除wp-comments-post.php文件,但是用新建货修改 .htaccess 文件来控制该文件的访问权限,未测试。

RewriteEngine On

RewriteCond %{REQUEST_METHOD} POST

RewriteCond %{REQUEST_URI} .wp-comments-post/.php*

RewriteCond %{HTTP_REFERER} !.*yourdomain.com.* [OR]

RewriteCond %{HTTP_USER_AGENT} ^$

RewriteRule (.*) ^http://%{REMOTE_ADDR}/$ [R=301,L]

yourdomain.com输入你的域名地址。

代码法要简单,但是要高级用户才可以使用。

代码法

这里的代码方法只屏蔽评论全文非中文字符的,会有一部分日文的spam绕过来,但是数量不多。

网上也有很多类似的代码,但是我试了几个都因为Wordpress版本升级或是其他原因造成网站无法访问的,只有以下代码可以正常使用。

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');

使用方法,将以上代码拷贝到正在使用的主题文件的function.php文件中,记得一定要拷贝在最后一个 ?> 的前面。

发表评论 取消回复
表情 图片 链接 代码

  1. 无纯洁
    无纯洁 Lv 3

    先用incapsula屏蔽掉大部分comment spam,再用加法插件屏蔽掉漏网之鱼,这是我的方法

分享