最近每次登陆后台,都会发现不少id为某某seo、xx刷钻、xx刷信用、xx导购、减肥等的垃圾评论,到博客文章里到处留言,大多数一些:“我过来了、过来瞅瞅,记得回访哦、写的不错、下雨了不想上班”等与主题无关的评论,很是让人头疼,这些垃圾评论真是防不胜防啊,虽说wordpress有自带的Akismet插件,不过好像还是有不少漏网之鱼。

这些人的目的很明确,无非就是两种,一种是做seo,一种是推广自己的产品。

但是这些人也不用脑子想想,seo是这样做的?seo靠这种垃圾留言就能做起来?wordpress评论自带的nofollow属性他们不是不知道吧?如果连这都不知道,还有什么狗hexin屁资格做一个成功的seoer?你见过seowhy到处留言吗?见过人家卢松松到处发spam

还有对想推广自己产品的人说:推广产品请到相关的地方去推广,在我这个主题为吹牛扯淡聊技术的博客里,你过来推广打印机?这样有意思吗?如果我的博客大部分内容跟打印机有关,你再过来发你的打印机留言,ok?

最近很多大骂特骂这些发spam的人,我也留下一篇文章以作声援,看到后台每天齐刷刷的一片垃圾评论,不反感都难。


说了这么些,鄙视也鄙了,声援也声了,现在发出willin一段防spam的代码,我们把他叫做“小墙”,效果比Akismet要更好,防的更精确,用wordpress的小盆友快点过来copy过去:

使用方法,后台编辑主题的“functions.php”文件,在php循环(<?php ?>)里插入如下代码:

不知道加到哪里的同学打开functions.php文件,搜索:?>,在搜出来的第一个?>前面插入这段代码即可。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
/* -----------------------------------------------
<<小墙>> Anti-Spam v1.8 by Willin Kan.
*/
//建立
class anti_spam {
function anti_spam() {
if ( !current_user_can('level_0') ) {
add_action('template_redirect', array($this, 'w_tb'), 1);
add_action('init', array($this, 'gate'), 1);
add_action('preprocess_comment', array($this, 'sink'), 1);
} }
//设栏位
function w_tb() {
if ( is_singular() ) {
ob_start(create_function('$input','return preg_replace("#textarea(.*?)name=([\"\'])comment([\"\'])(.+)/textarea>#",
"textarea$1name=$2w$3$4/textarea><textarea name=\"comment\" cols=\"100%\" rows=\"4\" style=\"display:none\"></textarea>",$input);') );
} }
//检查
function gate() {
( !empty($_POST['w']) && empty($_POST['comment']) ) ?
$_POST['comment'] = $_POST['w'] : $_POST['spam_confirmed'] = 1;
}
//处理
function sink( $comment ) {
if ( !empty($_POST['spam_confirmed']) ) {
//方法一:直接档掉, 將 die(); 前面两斜线删除即可.
//die();
//方法二:标记为spam, 留在资料库检查是否误判.
add_filter('pre_comment_approved', create_function('','return "spam";'));
$is_ping = in_array( $comment['comment_type'], array('pingback', 'trackback') );
$comment['comment_content'] = ( $is_ping ) ?
"◎ 這是 Pingback/Trackback, 小墙怀疑这可能是 Spam!\n" . $comment['comment_content'] :
"[ 小墙说:这是Spam!已干死,抬走吧~~ ]\n" . $comment['comment_content'];
}
return $comment;
} }
$anti_spam = new anti_spam();
// --小墙 END ----------------------------------------

友情提示:上面代码中的中文可以自己随意更换,玩的就是一个自由。

这是小墙工作之后的最新效果,放个spam截图,最勤劳的一个spamer是济南seo,每次都来发一大堆,不过还不是被咱英勇的小墙干死了:

现在这些spam都被干死了。

最后,致那些到处评论玩seo的人:排名不是这样做的,好好的回你的站里多写一些实用的原创文章,才是王道,”seo内容为王”这句话不是说说就算的,就算大家都去你的站了,里面就一套空壳子,也是立刻关闭走人。至于帮你点广告,那更是空想。