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设计模式中的工厂模式
Jun 12 PHP
php 图片加水印与上传图片加水印php类
May 12 PHP
PHP学习之数组值的操作
Apr 17 PHP
PHP二维数组的去重问题解析
Jul 17 PHP
php中$_GET与$_POST过滤sql注入的方法
Nov 03 PHP
PHP中iconv函数转码时截断字符问题的解决方法
Jan 21 PHP
Laravel 5.0 发布 新版本特性详解
Feb 10 PHP
php的4种常用运行方式详解
Dec 22 PHP
用php+ajax新建流程(请假、进货、出货等)
Jun 11 PHP
thinkphp5 框架结合plupload实现图片批量上传功能示例
Apr 04 PHP
如何通过Apache在本地配置多个虚拟主机
Jul 29 PHP
PHP生成随机密码4种方法及性能对比
Dec 11 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防注
2007/01/15 PHP
PHP类继承 extends使用介绍
2014/01/14 PHP
php获取网卡的MAC地址支持WIN/LINUX系统
2014/04/30 PHP
php保存任意网络图片到服务器的方法
2015/04/14 PHP
php实现购物车功能(上)
2020/07/23 PHP
thinkphp中字符截取函数msubstr()用法分析
2016/01/09 PHP
PHP文件操作实例总结
2016/09/27 PHP
Yii2中多表关联查询hasOne hasMany的方法
2017/02/15 PHP
PhpStorm 如何优雅的调试Hyperf的方法步骤
2019/11/24 PHP
XHTML下,JS浮动代码失效的问题
2009/11/12 Javascript
jQuery find和children方法使用
2011/01/31 Javascript
jQuery实现点击标题输入详细信息
2013/04/16 Javascript
javascript 手动给表增加数据的小例子
2013/07/10 Javascript
JavaScript中的ParseInt(&quot;08&quot;)和“09”返回0的原因分析及解决办法
2016/05/19 Javascript
基于JavaScript代码实现自动生成表格
2016/06/15 Javascript
Bootstrap3多级下拉菜单
2017/02/24 Javascript
jquery实现折叠菜单效果【推荐】
2017/03/08 Javascript
vue checkbox 全选 数据的绑定及获取和计算方法
2018/02/09 Javascript
angular第三方包开发整理(小结)
2018/04/19 Javascript
基于打包工具Webpack进行项目开发实例
2018/05/29 Javascript
微信小程序实现签到功能
2018/10/31 Javascript
微信小程序生成海报分享朋友圈的实现方法
2019/05/06 Javascript
vue 添加和编辑用同一个表单,el-form表单提交后清空表单数据操作
2020/08/03 Javascript
vue 监听 Treeselect 选择项的改变操作
2020/08/31 Javascript
[01:11:35]Liquid vs LGD 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
Python 递归函数详解及实例
2016/12/27 Python
python web.py开发httpserver解决跨域问题实例解析
2018/02/12 Python
Django代码性能优化与Pycharm Profile使用详解
2018/08/26 Python
pytorch实现Tensor变量之间的转换
2020/02/17 Python
全球航班旅行搜索网站:Cheapflights
2017/05/19 全球购物
求职者应聘的自我评价
2013/10/16 职场文书
倡议书范文
2014/04/16 职场文书
师德师风个人反思
2014/04/28 职场文书
毕业生代领毕业材料的授权委托书
2014/09/29 职场文书
《活见鬼》教学反思
2016/02/24 职场文书
Python开发五子棋小游戏
2022/04/28 Python