WordPress过滤垃圾评论的几种主要方法小结


Posted in PHP onJuly 11, 2016

由于个人博客小站的空间与mysql空间往往有限,共享服务器资源也有限,所以垃圾评论一定要拦截在写入数据库之外。

更可气的是看到空间的统计,很几千的IP访问,但基本上都是这个垃圾评论的IP,所以实在不能忍

网上找了一些方法,主要有三个,如果将这三个一块使用基本上就可以拦截绝大多数垃圾评论

一、使用Akismet插件(https://wordpress.org/plugins/akismet/),后台申请一个免费的key,可以拦截99%的垃圾评论,但是这个插件还是会将垃圾评论写入数据库的,一会几千条甚至上万条垃圾评论,虽说可以设置15天后自动删除,但是看着也别扭,于是加上第二种方法。

二、更改wp-comments-post.php名称

这种方法是先将wp-comments-post.php改为随便的名字,然后在你主题文件的comments.php中将wp-comments-post.php改为你刚才改过的名字

但是现在的spam机器人太强了,这种方法基本上没有任何作用,垃圾评论还是会进入到后台的垃圾评论里,于是采取第三种方法,过滤掉纯英语的垃圾评论,这种评论占了垃圾评论的很大一部分

三、过滤纯英文垃圾评论

在你主题的functions.php中添加以下代码

function refused_spam_comments( $comment_data ) { 
  $pattern = '/[一-?]/u'; 
  if(!preg_match($pattern,$comment_data['comment_content'])) { 
  wp_die('评论必须含中文!'); 
} 
  return( $comment_data ); 
} 
add_filter('preprocess_comment','refused_spam_comments');

其中[一-?]这个正则表达式代表所有中文,这时纯英文的垃圾评论算是过滤掉了,但是还有另外一种垃圾评论,日文的……

日文的采用同样的方法,请几个常出现的日文假名写入到正则表达式中ッ、の、ン、??、?I、グ、?

function fuckjp_comment_post( $incoming_comment ) {
  $http = '/[<|=|.|友|夜|KTV|ッ|の|ン|??|?I|グ|?|]/u';
  if(preg_match($http, $incoming_comment['comment_content'])) {
  wp_die( "日本广告离开!" );
}
  return( $incoming_comment );
}
add_filter('preprocess_comment', 'fuckjp_comment_post');
PHP 相关文章推荐
PHP syntax error, unexpected $end 错误的一种原因及解决
Oct 25 PHP
php设计模式 Bridge (桥接模式)
Jun 26 PHP
php利用单例模式实现日志处理类库
Feb 10 PHP
PHP图片等比例缩放生成缩略图函数分享
Jun 10 PHP
浅谈php和.net的区别
Sep 28 PHP
php上传大文件失败的原因及应对策略
Oct 20 PHP
PHP封装函数实现生成随机的字符串验证码
Jan 24 PHP
php数组实现根据某个键值将相同键值合并生成新二维数组的方法
Apr 26 PHP
PHP实现Unicode编码相互转换的方法示例
Nov 17 PHP
PHP使用Redis实现防止大并发下二次写入的方法
Oct 09 PHP
利用Laravel生成Gravatar头像地址的优雅方法
Dec 30 PHP
PHP实现对图片的反色处理功能【测试可用】
Feb 01 PHP
php处理带有中文URL的方法
Jul 11 #PHP
PHP实现JS中escape与unescape的方法
Jul 11 #PHP
php处理复杂xml数据示例
Jul 11 #PHP
php的debug相关函数用法示例
Jul 11 #PHP
php错误日志简单配置方法
Jul 11 #PHP
PHP进行批量任务处理不超时的解决方法
Jul 11 #PHP
PHP封装的数据库保存session功能类
Jul 11 #PHP
You might like
PHP+FLASH实现上传文件进度条相关文件 下载
2007/07/21 PHP
PHP aes (ecb)解密后乱码问题
2015/06/22 PHP
Laravel实现ApiToken认证请求
2019/10/14 PHP
jQuery EasyUI API 中文文档 - TreeGrid 树表格使用介绍
2011/11/21 Javascript
自定义jQuery选项卡插件实例
2013/03/27 Javascript
node.js中的fs.realpath方法使用说明
2014/12/16 Javascript
jquery中ready()函数执行的时机和window的load事件比较
2015/06/22 Javascript
Angularjs中使用Filters详解
2016/03/11 Javascript
JavaScript中的prototype原型学习指南
2016/05/09 Javascript
jsTree使用记录实例
2016/12/01 Javascript
原生js实现瀑布流布局
2017/03/08 Javascript
JavaScript 巧学巧用
2017/05/23 Javascript
JS实现数组简单去重及数组根据对象中的元素去重操作示例
2018/01/05 Javascript
vue使用element-ui的el-input监听不了回车事件的解决方法
2018/01/12 Javascript
vue组件与复用详解
2018/04/08 Javascript
vue全局使用axios的方法实例详解
2018/11/22 Javascript
JavaScript使用闭包模仿块级作用域操作示例
2019/01/21 Javascript
vue模仿网易云音乐的单页面应用
2019/04/24 Javascript
vue 使用 vue-pdf 实现pdf在线预览的示例代码
2020/04/26 Javascript
JavaScript/TypeScript 实现并发请求控制的示例代码
2021/01/18 Javascript
python 输出一个两行字符的变量
2009/02/05 Python
在Python中使用mechanize模块模拟浏览器功能
2015/05/05 Python
Python中的变量和作用域详解
2016/07/13 Python
Django框架使用富文本编辑器Uedit的方法分析
2018/07/31 Python
Python实现获取汉字偏旁部首的方法示例【测试可用】
2018/12/18 Python
Python图像处理PIL各模块详细介绍(推荐)
2019/07/17 Python
Django自定义模板过滤器和标签的实现方法
2019/08/21 Python
PyCharm下载和安装详细步骤
2019/12/17 Python
使用python matploblib库绘制准确率,损失率折线图
2020/06/16 Python
CSS3教程(6):创建网站多列
2009/04/02 HTML / CSS
HTML5 Blob 实现文件下载功能的示例代码
2019/11/29 HTML / CSS
教育学专业毕业生的自我鉴定
2013/11/26 职场文书
工商管理毕业生推荐信
2013/12/24 职场文书
水毁工程实施方案
2014/04/01 职场文书
2015年保险业务员工作总结
2015/05/27 职场文书
HTML5 新增内容和 API详解
2021/11/17 HTML / CSS