使用 WordPress 建站的朋友应该都会遇到一个问题,那就是大量的垃圾评论。不管你是新站还是老站都一样,今天君子不器就为大家推荐几种对付这些垃圾评论的方法。当然了,若是你已经使用了评论插件之类的东西,那么就不必要看此文了,因为本文是针对 WordPress 默认评论,只适合那些想通过纯代码的方式解决 WordPress 垃圾评论的站长朋友。

方案一:禁止评论中出现超链接

在 WordPress 中,很多垃圾评论甚至不需要去自习看内容,只需要瞄一眼就能确定是垃圾评论,因为这些评论一般都带有大量的超链接或者全是英文日文等。因此我们就可以根据这些评论的特点通过代码实现禁止其发表。

  1. function lianyue_comment_post( $incoming_comment ){
  2. $http ='/[<|=|.|友|夜|KTV|ッ|の|ン|優|業|グ|貿|]/u';
  3. if(preg_match($http, $incoming_comment['comment_content'])){
  4. wp_die("发贴机 哥 屋 恩!");
  5. }
  6. return( $incoming_comment );
  7. }
  8. add_filter('preprocess_comment','lianyue_comment_post');

方案二:通过评论中必须包含中文的方式禁止全英文评论

在使用 WordPress 的过程中,若是你开启了网站的注册功能,那么你就会发现你网站要不了多久就会多出一堆全英文的用户名,这些都是一些国外的广告机器人注册用来发广告的,因此我们很有必要禁止掉这些全英文的评论。

  1. function ruikeedu_com_comment_post( $incoming_comment ){
  2. $pattern ='/[一-龥]/u';
  3. // 禁止全英文评论
  4. if(!preg_match($pattern, $incoming_comment['comment_content'])){
  5. wp_die("您的评论中必须包含汉字,否则将被视为发贴机!");
  6. }
  7. return( $incoming_comment );
  8. }
  9. add_filter('preprocess_comment','ruikeedu_com_comment_post');

方案三:评论中必须包含中文且不得出现如超链接之类的指定字符

若是你想要同时使用两种方式又觉得贴两份代码麻烦的话,那么请直接复制下面二合一代码。使用了下面的代码后就不要再使用方案一和方案二了。

  1. //评论中必须包含中文且不得出现如超链接之类的指定字符
  2. function ruikeedu_com_comment_post( $incoming_comment ){
  3. $pattern ='/[一-龥]/u';
  4. $http ='/[<|=|.|友|夜|KTV|ッ|の|ン|優|業|グ|貿|]/u';
  5. // 禁止全英文评论
  6. if(!preg_match($pattern, $incoming_comment['comment_content'])){
  7. wp_die("写点汉字吧,博主外语很捉急!You should type some Chinese word!");
  8. }elseif(preg_match($http, $incoming_comment['comment_content'])){
  9. wp_die("不好意思,您的评论违反本站评论规则!");
  10. }
  11. return( $incoming_comment );
  12. }
  13. add_filter('preprocess_comment','ruikeedu_com_comment_post');

方案四:屏蔽评论中的指定关键词,如:Email 、 Url 、 Ip 等

  1. //屏蔽评论中的指定关键词,如:email 、 url 、 ip 等
  2. function ruikeedu_com_fuckyou($comment){
  3. if(wp_blacklist_check($comment['comment_author'], $comment['comment_author_email'], $comment['comment_author_url'], $comment['comment_content'], $comment['comment_author_IP'], $comment['comment_agent'])){
  4. header("Content-type: text/html; charset=utf-8");
  5. err(__('不好意思,您的评论违反本站评论规则'));
  6. }else{
  7. return $comment;
  8. }
  9. }
  10. add_filter('preprocess_comment','ruikeedu_com_fuckyou');

方案五:屏蔽长连接评论

  1. function ruikeedu_com_fuckyou_spamcheck($approved, $commentdata){
  2. return(strlen($commentdata['comment_author_url'])>50)?
  3. 'spam': $approved;
  4. }
  5. add_filter('pre_comment_approved','ruikeedu_com_fuckyou_spamcheck',99,2);

方案六:屏蔽昵称,评论内容带链接的评论

  1. function ruikeedu_com_fuckyou_link($comment_data){
  2. $links ='/http://|https://|www./u';
  3. if(preg_match($links, $comment_data['comment_author'])|| preg_match($links, $comment_data['comment_content'])){
  4. err(__('在昵称和评论里面是不准发链接滴.'));
  5. }
  6. return($comment_data);
  7. }
  8. add_filter('preprocess_comment','ruikeedu_com_fuckyou_link');