也许你还在为每天少者十来条多则五十上百的Spam而头疼,今天就隆重推荐Willin大大研发的新型防Spam利器:小牆 1.7
先来了解下Spam是的运作特性,它会填满所有资料框,包括姓名、邮件、网址、留言内容等等。小牆就利用Spam的此特性,增设了一个“display:block;width:0;height:0;margin:0;padding:0;”的资料框,正常情况下,访客是不可能填到这个宽高都为零的资料框的,所以,只要这里有东西,一定是Spam,绝无误杀!
使用方法很简单,直接将以下代码放到模板的 functions.php中:
/* ----------------------------------------------- <<小牆>> Anti-Spam v1.7 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=\"8\" style=\"display:block;width:0;height:0;margin:0;padding:0;\"></textarea>",$input);')); } } //檢查 function gate() { if (isset($_POST['w']) && !empty($_POST['w']) && empty($_POST['comment'])) { $_POST['comment']= $_POST['w'];unset($_POST['w']); } else {$_POST['spam_confirmed'] = 1;} } //處理 function sink($comment) { if (isset($_POST['spam_confirmed']) && !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')); if ($is_ping) { $comment['comment_content'] = "◎ 這是 Pingback/Trackback, 小牆懷疑這可能是 Spam!\n" .$comment['comment_content']; } else { $comment['comment_content'] = "[ 小牆判斷這是Spam! ]\n" .$comment['comment_content']; }} return $comment; }} $anti_spam = new anti_spam(); // -- END ----------------------------------------
提示,此段代码是放到functions头 <?php 于尾 ?> 之间!另外,也可将等号右边的$comment['comment_content']; 改为substr($comment['comment_content'],0,50); 这样只截取50个字,节省了数据库空间。
木木童鞋经过几天的体验使用,一个字“攒”!我等等就把那“方法一”开起来,直接让那些MJJ的Spam们见哈利路亚去,阿门!
那叫啥AK啥啥的,一边凉快去吧~

“那叫啥AK啥啥的,一边凉快去吧~”
英雄所见很同!哈哈哈哈
人怕出名,猪怕壮,都没人到我那spam,真是可怜。。。。
话说,楼下的,请你在一秒中内把“木木木木木”读出来,看发音变成啥了,没有表情,奸笑一个。哈哈
@happyet
呜呜呜呜~~~~~~~
@章鱼 咋地?被人欺负了???
木木木木木–呜呜呜呜
以前好像在万戈那边见过类似的
因为我们都是转willin的,嘿嘿
我就用的那啥ak啥啥的
@志言堂 之前我也一直在用的啦,偶尔也换个用用效果非常不错,而且又能禁用一个插件,何乐不为呀~
哈哈,看原理很不错啊。
比AK好多了
现在的域名很强大啊!主题也换了,很清爽!链接我已经改了!
@aunsen 嘻嘻,感谢A哥支持~~
我SPAM不很严重~开博3个多月,总共还不到100条SPAM~而且几乎都用WP自带的给过滤掉了……
@Jutoy 幸福的孩子,用这个方法又禁用了一个插件也不错呀~
看来不错,折腾去
真不错,想法真不错
skimet是高科技,这个是鸟枪,不过更好用~~
现在小墙已经变成1.8了。。。 =o=
赶紧升级~~嘻嘻
=o= 为啥我测试Mail to Commenter不成功嘞。。。
主机支持mail函数不?或者回复邮件进SPAM了?
支持啊 =o= 而且完全米有邮件。。 是我设置出了错么? 激活邮件通知那个要勾选不?
用Willin大师的那个嘛~
=o= 好吧 我去看看。。。
=o= 刚测试了。。。终于有回复邮件了。。 可是为啥评论完不自动跳转呢。。。
自动跳转是啥意思?
就是发完一条评论跳转回文章。。。
之前问了大师了 =o= 他暂时没搞明白。。 反正我这个也就是管理员不能自动跳 游客回复还是正常的 我忍了~
额……等大师回复吧~
真聪明啊~
有時候用1.8.1的還是有英文spam飄過……
这个就是传说中的小强?谢谢木木………………
现在有新版了,到willin那看看呗~