加入收藏 | 设为首页 | 会员中心 | 我要投稿 济源站长网 (https://www.0391zz.cn/)- 数据工具、数据仓库、行业智能、CDN、运营!
当前位置: 首页 > 教程 > 正文

推荐几种防御wordpress垃圾评论的方法

发布时间:2022-06-25 21:31:41 所属栏目:教程 来源:互联网
导读:垃圾评论是现在wordpress博客站长一个头痛的问题了,今天小编也因此找了很多方法,下面整理了两个过滤垃圾评论方法与两款常用的插件. 上周博客突然不能访问了,问了下服务器商说是我流量太太,影响到了服务器的正常运行,不至于啊,下载带本地一看,两千多垃圾评论,
  垃圾评论是现在wordpress博客站长一个头痛的问题了,今天小编也因此找了很多方法,下面整理了两个过滤垃圾评论方法与两款常用的插件.
 
  上周博客突然不能访问了,问了下服务器商说是我流量太太,影响到了服务器的正常运行,不至于啊,下载带本地一看,两千多垃圾评论,我才明白应该是垃圾评论导致的服务器的负载过高,然后我没办法只好暂时关闭了评论,然后网站各种搜索解决办法,总结起来,垃圾评论不可能彻底清除的,做的再好还是会有的,只能自己手动清理了,但是不至于导致服务器负载过高挂掉.
 
  我用了两个方法,这里给分享下,因为迟早你会用到的,哈哈.
 
  1、屏蔽所有全是英文(不包含汉字)的评论.
 
  只需修改你当前使用的主题目录下的functions.php就可以了,而且不会受到的WordPress升级的影响,具体修改:打开当前使用的主题目录下的functions.php,在最后加上下面代码,这个可以屏蔽很多纯英文的垃圾评论,垃圾评论中英文占比很大的,代码如下:
 
  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 );
  }//开源软件:phpfensi.com
  add_filter('preprocess_comment', 'scp_comment_post');
  2、修改wp-comments-post.php的文件名,让机器人找不到评论入口,参考威言威语.
 
  我们都知道,绝大部分的垃圾评论都是通过post网站根目录下的wp-comments-post.php来提交垃圾评论的,我们让其找不到post的入口,那么它就不能发垃圾评论了,对于普通用户而言,正常情况下,不管你使用的什么主题,通用的解决方法是:
 
  将博客根目录下面的wp-comments-post.php改名,改成什么都可以,比如 no-comments-post.php
 
  打开主题的里面的comments.php,找到代码里面的 wp-comments-post.php,将其改为 no-comments-post.php
 
  改的名字跟之前修改的名字一样就行了,建议改的不要这么规则,防止垃圾评论发布机制升级通过什么正则匹配来猜某些类似的地址.
 
  这个主要就是通过修改评论路径,让垃圾评论发表找不到入口,从而屏蔽垃圾评论,目前我使用下来还是很不错的,如果你的WordPress也有很多垃圾评论,不妨也用用这个方法.
 
  防止同一ip重复发垃圾评论、如果发某一ip有垃圾评论,那么24小时,将不让提交评论.
 
  你需要做的就是把下面一小段代码,加入到你WordPress主题的functions.php文件中,代码如下:
 
  //整治垃圾评论
  if(!function_exists('antispam_check')):
  function antispam_check($comment) {
   global $wpdb;
   $query = $wpdb->prepare('SELECT COUNT(*) AS SPAM_COUNT, MAX(comment_date_gmt) AS LAST_SPAM_DATE FROM '.$wpdb->comments.' WHERE comment_approved = 'spam' AND comment_author_IP = %s', preg_replace( '/[^0-9a-fA-F:., ]/', "",$_SERVER['REMOTE_ADDR'] ));
   $comment_count = $wpdb->get_row($query, ARRAY_A);
   if($comment_count['SPAM_COUNT'] >= 1) {
   wp_die('你屡次作恶,管理员已经忍无可忍永久封掉了你的IP地址,如果你对此有任何疑问请联系管理员。');
   }elseif($comment_count['SPAM_COUNT'] > 0 && gmmktime()-strtotime($comment_count['LAST_SPAM_DATE'], gmmktime())<24*3600) {
   wp_die('你有过作恶的不良记录,24小时的不能发言,如果你对此有任何疑问请联系管理员。');
   }
   return $comment;
  }
  endif;
  add_action('preprocess_comment', 'antispam_check');
  当然了还有朋友说利用相关插件下面我也整理一些.
 
  1.Akismet
 
  Akismet 是 WordPress 官方推荐的一款 WordPress 防垃圾评论插件,功能很强大,激活Akismet后,就可以自动拦截过滤大多数的垃圾评论,然而 Akismet 默认是没有启用和激活的,今天倡萌就给新手朋友演示一下如何激活Akismet防垃圾评论插件.
 
  2.Math Comment Spam Protection 3.0的插件
 
  当然评论问题全是英文,只要自己翻译下error的英文就可以了,试用几天后果然感觉不错,推荐有blog的朋友可以试试……
 
 

(编辑:济源站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读