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 相关文章推荐
php4的session功能评述(二)
Oct 09 PHP
php Mysql日期和时间函数集合
Nov 16 PHP
PHP 开源AJAX框架14种
Aug 24 PHP
setcookie中Cannot modify header information-headers already sent by错误的解决方法详解
May 08 PHP
thinkphp 多表 事务详解
Jun 17 PHP
实现获取http内容的php函数分享
Feb 16 PHP
PHP实现动态web服务器方法
Jul 29 PHP
使用PHP进行微信公众平台开发的示例
Aug 21 PHP
wordpress网站转移到本地运行测试的方法
Mar 15 PHP
PHP大文件分割上传 PHP分片上传
Aug 28 PHP
PHP设计模式之简单工厂和工厂模式实例分析
Mar 25 PHP
PHP实现文件上传与下载
Aug 28 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操作sqlserver关于时间日期读取的小小见解
2009/11/29 PHP
PHP中=赋值操作符对不同数据类型的不同行为
2011/01/02 PHP
PHP抓取、分析国内视频网站的视频信息工具类
2014/04/02 PHP
php使用MySQL保存session会话的方法
2015/06/18 PHP
实例讲解php数据访问
2016/05/09 PHP
javascript 面向对象全新理练之数据的封装
2009/12/03 Javascript
JavaScript 学习笔记(十六) js事件
2010/02/01 Javascript
一个报数游戏js版(约瑟夫环问题)
2010/08/05 Javascript
下拉框select的绑定示例
2014/09/04 Javascript
JSONP跨域请求实例详解
2016/07/04 Javascript
Bootstrap Validator 表单验证
2016/07/25 Javascript
json定义及jquery操作json的方法
2016/10/03 Javascript
JS实现电商放大镜效果
2017/08/24 Javascript
Vue+SpringBoot开发V部落博客管理平台
2017/12/27 Javascript
vue 界面刷新数据被清除 localStorage的使用详解
2018/09/16 Javascript
vue+ElementUI 关闭对话框清空验证,清除form表单的操作
2020/08/06 Javascript
Python两个内置函数 locals 和globals(学习笔记)
2016/08/28 Python
python处理document文档保留原样式
2019/09/23 Python
python根据时间获取周数代码实例
2019/09/30 Python
django 实现简单的插入视频
2020/04/07 Python
python3 简单实现组合设计模式
2020/07/02 Python
用Python自动清理系统垃圾的实现
2021/01/18 Python
英国标志性奢侈品牌:Burberry
2016/07/28 全球购物
英国旅游额外服务市场领导者:Holiday Extras(机场停车场、酒店、接送等)
2017/10/07 全球购物
俄罗斯电子产品、计算机和家用电器购物网站:OLDI
2019/10/27 全球购物
美体小铺法国官方网站:The Body Shop法国
2020/06/04 全球购物
比较一下entity bean和session bean
2013/12/27 面试题
高中毕业生自我鉴定范文
2013/09/26 职场文书
办公室文书岗位职责
2013/12/16 职场文书
保安的辞职报告怎么写
2014/01/20 职场文书
护理专科毕业生自荐书范文
2014/02/19 职场文书
浪漫婚礼主持词
2014/03/14 职场文书
父亲节活动策划方案
2014/08/24 职场文书
离婚起诉书怎么写
2015/05/19 职场文书
中学生打架《检讨书》范文
2019/08/12 职场文书
导游词之河北滦平金山岭长城
2019/10/16 职场文书