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 5.0对象模型深度探索之绑定
Sep 05 PHP
用PHP和ACCESS写聊天室(六)
Oct 09 PHP
PHP 和 XML: 使用expat函数(二)
Oct 09 PHP
QQ登录 PHP OAuth示例代码
Jul 20 PHP
应用开发中涉及到的css和php笔记分享
Aug 02 PHP
php数组编码转换示例详解
Mar 11 PHP
PHP return语句的另一个作用
Jul 30 PHP
PHP中的使用curl发送请求(GET请求和POST请求)
Feb 08 PHP
PHP redis实现超迷你全文检索
Mar 04 PHP
php 一维数组的循环遍历实现代码
Apr 10 PHP
深入理解PHP中mt_rand()随机数的安全
Oct 12 PHP
PHP7修改的函数
Mar 09 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的面试题集
2006/11/19 PHP
珊瑚虫IP库浅析
2007/02/15 PHP
PHP 存储文本换行实现方法
2010/01/05 PHP
CodeIgniter记录错误日志的方法全面总结
2016/05/17 PHP
php-msf源码详解
2017/12/25 PHP
PHP实现小程序批量通知推送
2018/11/27 PHP
php输出控制函数和输出函数生成静态页面
2019/06/27 PHP
PHP哈希表实现算法原理解析
2020/12/11 PHP
JavaScript ECMA-262-3 深入解析.第三章.this
2011/09/28 Javascript
基于jquery的web页面日期格式化插件
2011/11/15 Javascript
jquery ready函数、css函数及text()使用示例
2013/09/27 Javascript
js获取select标签选中值的两种方式
2014/01/09 Javascript
JQuery Tips相关(1)----关于$.Ready()
2014/08/14 Javascript
javascript结合CSS实现苹果开关按钮特效
2015/04/07 Javascript
BootStrap modal模态弹窗使用小结
2016/10/26 Javascript
JavaScript实现图片轮播组件代码示例
2016/11/22 Javascript
基于javascript实现按圆形排列DIV元素(一)
2016/12/02 Javascript
JavaScript指定断点操作实例教程
2018/09/18 Javascript
javascrit中undefined和null的区别详解
2019/04/07 Javascript
微信小程序实现写入读取缓存详解
2019/08/30 Javascript
Openlayers实现图形绘制
2020/09/28 Javascript
python用opencv批量截取图像指定区域的方法
2019/01/24 Python
运行tensorflow python程序,限制对GPU和CPU的占用操作
2020/02/06 Python
CSS3控制HTML元素动画效果
2014/02/08 HTML / CSS
澳大利亚连衣裙和女装在线:Esther
2017/11/11 全球购物
La Senza官网:北美顶尖性感内衣品牌
2018/08/03 全球购物
装潢设计专业推荐信模板
2013/11/26 职场文书
优秀经理获奖感言
2014/03/04 职场文书
酒店总经理岗位职责范本
2014/08/08 职场文书
部队反四风对照检查材料
2014/09/26 职场文书
解约证明模板
2015/06/19 职场文书
2016年学生会感恩节活动总结
2016/04/01 职场文书
golang json数组拼接的实例
2021/04/28 Golang
详解Java线程池是如何重复利用空闲线程的
2021/06/26 Java/Android
厉害!这是Redis可视化工具最全的横向评测
2021/07/15 Redis
Dashboard管理Kubernetes集群与API访问配置
2022/04/01 Servers