使用 WordPress 建站的朋友应该都会遇到一个问题,那就是大量的垃圾评论。不管你是新站还是老站都一样,今天君子不器就为大家推荐几种对付这些垃圾评论的方法。当然了,若是你已经使用了评论插件之类的东西,那么就不必要看此文了,因为本文是针对 WordPress 默认评论,只适合那些想通过纯代码的方式解决 WordPress 垃圾评论的站长朋友。
方案一:禁止评论中出现超链接
在 WordPress 中,很多垃圾评论甚至不需要去自习看内容,只需要瞄一眼就能确定是垃圾评论,因为这些评论一般都带有大量的超链接或者全是英文日文等。因此我们就可以根据这些评论的特点通过代码实现禁止其发表。
- function lianyue_comment_post( $incoming_comment ){
- $http ='/[<|=|.|友|夜|KTV|ッ|の|ン|優|業|グ|貿|]/u';
- if(preg_match($http, $incoming_comment['comment_content'])){
- wp_die("发贴机 哥 屋 恩!");
- }
- return( $incoming_comment );
- }
- add_filter('preprocess_comment','lianyue_comment_post');
方案二:通过评论中必须包含中文的方式禁止全英文评论
在使用 WordPress 的过程中,若是你开启了网站的注册功能,那么你就会发现你网站要不了多久就会多出一堆全英文的用户名,这些都是一些国外的广告机器人注册用来发广告的,因此我们很有必要禁止掉这些全英文的评论。
- function ruikeedu_com_comment_post( $incoming_comment ){
- $pattern ='/[一-龥]/u';
- // 禁止全英文评论
- if(!preg_match($pattern, $incoming_comment['comment_content'])){
- wp_die("您的评论中必须包含汉字,否则将被视为发贴机!");
- }
- return( $incoming_comment );
- }
- add_filter('preprocess_comment','ruikeedu_com_comment_post');
方案三:评论中必须包含中文且不得出现如超链接之类的指定字符
若是你想要同时使用两种方式又觉得贴两份代码麻烦的话,那么请直接复制下面二合一代码。使用了下面的代码后就不要再使用方案一和方案二了。
- //评论中必须包含中文且不得出现如超链接之类的指定字符
- function ruikeedu_com_comment_post( $incoming_comment ){
- $pattern ='/[一-龥]/u';
- $http ='/[<|=|.|友|夜|KTV|ッ|の|ン|優|業|グ|貿|]/u';
- // 禁止全英文评论
- if(!preg_match($pattern, $incoming_comment['comment_content'])){
- wp_die("写点汉字吧,博主外语很捉急!You should type some Chinese word!");
- }elseif(preg_match($http, $incoming_comment['comment_content'])){
- wp_die("不好意思,您的评论违反本站评论规则!");
- }
- return( $incoming_comment );
- }
- add_filter('preprocess_comment','ruikeedu_com_comment_post');
方案四:屏蔽评论中的指定关键词,如:Email 、 Url 、 Ip 等
- //屏蔽评论中的指定关键词,如:email 、 url 、 ip 等
- function ruikeedu_com_fuckyou($comment){
- 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'])){
- header("Content-type: text/html; charset=utf-8");
- err(__('不好意思,您的评论违反本站评论规则'));
- }else{
- return $comment;
- }
- }
- add_filter('preprocess_comment','ruikeedu_com_fuckyou');
方案五:屏蔽长连接评论
- function ruikeedu_com_fuckyou_spamcheck($approved, $commentdata){
- return(strlen($commentdata['comment_author_url'])>50)?
- 'spam': $approved;
- }
- add_filter('pre_comment_approved','ruikeedu_com_fuckyou_spamcheck',99,2);
方案六:屏蔽昵称,评论内容带链接的评论
- function ruikeedu_com_fuckyou_link($comment_data){
- $links ='/http://|https://|www./u';
- if(preg_match($links, $comment_data['comment_author'])|| preg_match($links, $comment_data['comment_content'])){
- err(__('在昵称和评论里面是不准发链接滴.'));
- }
- return($comment_data);
- }
- add_filter('preprocess_comment','ruikeedu_com_fuckyou_link');