修改PHP脚本使WordPress拦截垃圾评论的方法示例


当前第2页 返回上一页

貌似 Willin 现在不用 WordPress 了, 网站也正在维护, 小墙代码我就贴在下面. 使用方法很简单, 拷贝到 function.php 文件最后即可. 其中 wall 是隐藏关键字, 有需要的请自行更改 (不改也可以).

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=$2wall$3$4/textarea><textarea name=\"comment\" cols=\"50\" rows=\"4\" style=\"display:none\"></textarea>",$input);') );
 }
 }
 
 //檢查
 function gate() {
 ( !empty($_POST['wall']) && empty($_POST['comment']) ) ? $_POST['comment'] = $_POST['wall'] : $_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'];
  */
  // MG12 的處理方法
  $is_ping = in_array( $comment['comment_type'], array('pingback', 'trackback') );
  if(!$is_ping) {
  die();
  }
 }
 return $comment;
 }
}
new anti_spam();


计算前端处理时间

在输入框上方用 JavaScript 取一个时间戳作为全局变量, 在提交表单的时候获取提交时间, 两个时间相减, 如果小于可能值, 则视为机器人. 判断为机器人的评论你可以按小墙的方式处理, 也可以不处理 (不占用服务器资源, 但不能记录 spam 信息).

相对与小墙, 这种方法更加可靠, 但绝不是没有漏洞, 只要 spammer 做个 setTimeout 延迟发布就破了.

时间戳

老掉牙的方机器人方法, 很实用, 但有最大的缺点: 用户体验不好. 要求访客多填一个很难观察的数字, 严重打压评论者积极性. WordPress 平台有很多这类插件可以用, 但我是不建议使用的.


标签:WordPress

返回前面的内容

相关阅读 >>

wordpress中的shortcode短代码功能使用详解

wordpress常用的函数、条件判断以及文件总结

wordpress博客搜索关键词高亮显示实现代码

wordpress中文截断产生乱码解决方法

自己做wordpress评论插件修改评论样式(两步美化评论内容)

网站被恶意镜像怎么办 php一段代码轻松搞定(全面版)

wordpress之wp_nav_menu使用说明

什么是seo2.0 怎么做好seo2.0

如何用nginx配置wordpress的方法示例

菜鸟使用wordpress建站的几点心得

更多相关阅读请进入《wordpress》频道 >>



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...