首页课件丨教程安装教程阻止WordPress垃圾评论

阻止WordPress垃圾评论

互联网每天都产生很多的垃圾信息、不良广告信息,WordPress网站如果开启了评论功能,也难免被这些不良信息困扰。如果是维护管理频率较高的网站,强烈建议在后台开启“评论必须经人工批准”。

不过这样一来会增加管理者的工作,本文将介绍如何有效自动过滤大多数垃圾评论的方法。

垃圾评论的特征

一般来说垃圾评论都是以超级链接或宣传某种不良信息为目的,大多有以下特点:

  • 评论内容含有<a>链接
  • 通过程序自动发送
  • 部分境外垃圾信息不包含中文汉字

垃圾评论示例:

如何阻止垃圾评论

1、使用Akismet Anti-Spam插件自动防护。这种做法是可行而且有效的,但缺点就是其免费密钥仅适用于个人非商业站点,而且API调用次数受到限制。最大的弊端是会影响网站性能。

2、使用插件或代码为评论增加验证功能,例如验证码或仅注册用户评论等。这种方式也是有效的,不过不太适合采用了静态缓存或CDN缓存的网站,虽然可以通过ajax的方式来解决缓存的问题,但ajax会产生额外系统资源损耗,访问量大的网站特别明显,不符合站长帮一贯追求极致优化的作风。(注:ajax会与服务器交换数据。)

3、推荐阻止垃圾评论的方式:纯代码免插件阻止垃圾评论

在当前主题的functions.php文件尾部增加以下代码:

/* 阻止垃圾评论代码Start */ /* 本文出自:https://www.zhanzhangb.com/1417.html */ /* 阻止全英文评论 */ function refused_english_spam_comments( $comment_data ) { $pattern = '/[一-龥]/u'; $jpattern ='/[ぁ-ん]+|[ァ-ヴ]+/u'; if(!preg_match($pattern,$comment_data['comment_content'])) { wp_die('<p>评论中必须含有中文! - 站长帮</p>'); } return( $comment_data ); } add_filter('preprocess_comment','refused_english_spam_comments'); /* 阻止含 A 链接评论 */ function refused_a_spam_comments( $incoming_comment ) { if(strstr($incoming_comment['comment_content'], "<a")){ wp_die( "<p>评论中不能包含超级链接,请直接填写 URL 地址! - 站长帮</p>" ); } return( $incoming_comment ); } add_filter('preprocess_comment', 'refused_a_spam_comments'); /* 阻止垃圾评论代码End */

如果以上代码阻止垃圾评论,但不出现提示内容(部分主题的兼容性问题),请尝试以下代码:

/* 阻止垃圾评论代码Start */ /* 本文出自:https://www.zhanzhangb.com/1417.html */ function spam_comments_error_prompt($ErrMsg) { header('HTTP/1.1 405 Method Not Allowed'); echo $ErrMsg; exit; } /* 阻止全英文评论 */ function refused_english_spam_comments( $comment_data ) { $pattern = '/[一-龥]/u'; $jpattern ='/[ぁ-ん]+|[ァ-ヴ]+/u'; if(!preg_match($pattern,$comment_data['comment_content'])) { spam_comments_error_prompt('评论中必须含有中文! - 站长帮'); } return( $comment_data ); } add_filter('preprocess_comment','refused_english_spam_comments'); /* 阻止含 A 链接评论 */ function refused_a_spam_comments( $incoming_comment ) { if(strstr($incoming_comment['comment_content'], "<a")){ spam_comments_error_prompt( "评论中不能包含超级链接,请直接填写 URL 地址! - 站长帮" ); } return( $incoming_comment ); } add_filter('preprocess_comment', 'refused_a_spam_comments'); /* 阻止垃圾评论代码End */

以上代码将阻止内容中包含任何超级链接或内容全英文的评论,并给出适当的提示,这和Akismet Anti-Spam插件不同的是,被阻止的评论是无法发送的(返回405错误提示),这对于WordPress数据库来说也算是一种环保吧。

声明: 1.本站大部分内容均收集于网络!若内容若侵犯到您的权益,请发送邮件至:ceo@zunw.cn,我们将第一时间处理! 2.资源所需价格并非资源售卖价格,是收集、整理、编辑详情以及本站运营的适当补贴,并且本站不提供任何免费技术支持 3.所有资源仅限于参考和学习,版权归原作者所有,更多请阅读网站声明。

给TA赏金
共{{data.count}}人
人已赏金
安装教程

Wordpress显示文章的阅读次数,支持缓存页面AJAX刷新

2022-11-9 23:00:24

安装教程

如何将域名提交到HSTS预加载列表,以提升访问速度

2022-11-9 23:00:26

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索
MySSL 安全签章