网络营销博客 > wordpress > wordpress反英文垃圾评论就用小墙1.82
201010月29

wordpress反英文垃圾评论就用小墙1.82

李小鹏 wordpress , , | 浏览次数12,345 次 20 Comments

最近英文垃圾评论特别多,每天删来删去的实在太麻烦,索性直接上winka大师写的WP Anti Spam小墙1.81,可以有效的防止垃圾英文评论,就目前来说应该是最好的非插件防spam的的方法了。看具体操作:

将下列代码直接copy 到模板的 functions.php中即可:

  1. /* <<小牆>> Anti-Spam v1.82 by Willin Kan. 2010/12/16 最新修改 */  
  2. //建立   
  3. class anti_spam {   
  4.   function anti_spam() {   
  5.     if ( !current_user_can('level_0') ) {   
  6.       add_action('template_redirect', array($this, 'w_tb'), 1);   
  7.       add_action('init', array($this, 'gate'), 1);   
  8.       add_action('preprocess_comment', array($this, 'sink'), 1);   
  9.     }   
  10.   }   
  11.   //設欄位   
  12.   function w_tb() {   
  13.     if ( is_singular() ) {   
  14.       ob_start(create_function('$input','return preg_replace("#textarea(.*?)name=([\"\'])comment([\"\'])(.+)/textarea>#",   
  15.       "textarea$1name=$2w$3$4/textarea><textarea name=\"comment\" cols=\"100%\" rows=\"4\" style=\"display:none\"></textarea>",$input);') );   
  16.     }   
  17.   }   
  18.   //檢查   
  19.   function gate() {   
  20.     if ( !emptyempty($_POST['w']) && emptyempty($_POST['comment']) ) {   
  21.       $_POST['comment'] = $_POST['w'];   
  22.     } else {   
  23.       $request = $_SERVER['REQUEST_URI'];   
  24.       $referer = isset($_SERVER['HTTP_REFERER'])         ? $_SERVER['HTTP_REFERER']         : '隱瞞';   
  25.       $IP      = isset($_SERVER["HTTP_X_FORWARDED_FOR"]) ? $_SERVER["HTTP_X_FORWARDED_FOR"] . ' (透過代理)' : $_SERVER["REMOTE_ADDR"];   
  26.       $way     = isset($_POST['w'])                      ? '手動操作'                       : '未經評論表格';   
  27.       $spamcom = isset($_POST['comment'])                ? $_POST['comment']                : null;   
  28.       $_POST['spam_confirmed'] = "請求: "$request"\n來路: "$referer"\nIP: "$IP"\n方式: "$way"\n內容: "$spamcom"\n -- 記錄成功 --";   
  29.     }   
  30.   }   
  31.   //處理   
  32.   function sink( $comment ) {   
  33.     if ( !emptyempty($_POST['spam_confirmed']) ) {   
  34.       if ( in_array( $comment['comment_type'], array('pingback', 'trackback') ) ) return $comment//不管 Trackbacks/Pingbacks   
  35.       //方法一: 直接擋掉, 將 die(); 前面兩斜線刪除即可.   
  36.       //die();   
  37.       //方法二: 標記為 spam, 留在資料庫檢查是否誤判.   
  38.       add_filter('pre_comment_approved', create_function('', 'return "spam";'));   
  39.       $comment['comment_content'] = "[ 小牆判斷這是Spam! ]\n"$_POST['spam_confirmed'];   
  40.     }   
  41.     return $comment;   
  42.   }   
  43. }   
  44. $anti_spam = new anti_spam();   
  45. // -- END ----------------------------------------    

这个是2010/12/16 最新修改, 是 1.82 版,取消了 Trackbacks/Pingbacks 的拦截,將 spam 的基本资料存进档头.

至于效果我就不多说了,小墙1.82到底好不好,我只能说谁用谁知道,嘎嘎

更多

文章作者:网络营销案例
本文地址:http://www.3fwx.com/wordpress-xiao-qiang.html
版权所有 © 转载时必须以链接形式注明作者和原始出处!

目前已有20位网友发表了评论,你不说点啥?

  1. #1 小李飞刀 引用 Post:2011-04-09 22:40

    这个在很多地方有看过,不过没试过,可以放上去试试

  2. 最近我也被英文评论困扰,终于找到方法了,我去试试

    • #4 李小鹏 引用 Post:2011-01-17 23:30

      这个方法唯一不足的就是,直接将垃圾评论拦截到了你的垃圾评论里了

  3. #5 geng067 引用 Post:2010-12-30 16:30

    好复杂,还以为是插件

  4. #6 老王 引用 Post:2010-12-23 14:17

    用你这个法子回去试一试。 :razz:

  5. #7 ugg boots clearance 引用 Post:2010-12-05 11:42

    瞧瞧的,博主我把你文章转走了, 哈哈

  6. #9 4.12 引用 Post:2010-11-24 18:25

    上次看到个添加验证码的也不错….谢谢博主分享….

    • #10 李小鹏 引用 Post:2010-11-24 19:41

      感觉加验证码的方法,用户体验不太好。不如这个人性化!

  7. #11 巢湖SEO 引用 Post:2010-11-05 12:37

    确实是,谁用谁知道!!

  8. #12 珠海SEO 引用 Post:2010-11-02 16:30

    我放了就打不开网站了

    • #13 李小鹏 引用 Post:2010-11-02 16:43

      是不是放错地方了?放到最后一个问号的上一行试试。

  9. #14 眯眯熊 引用 Post:2010-10-30 16:08

    学习了。

  10. #15 winka 引用 Post:2010-10-29 19:31

    這是我叔寫的, 我只是代管他的博客. 原文鏈結: http://kan.willin.org/?p=1324

    • #16 李小鹏 引用 Post:2010-10-29 22:06

      原来是这样的,很喜欢这个博客 很多有用的东东

  11. #17 业务员论坛 引用 Post:2010-10-29 13:59

    • 嗯 文章不错,多谢分享

本文的评论功能被关闭了.