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 adodb连接不同数据库
Mar 19 PHP
PHPLog php 程序调试追踪工具
Sep 09 PHP
9个PHP开发常用功能函数小结
Jul 15 PHP
PHP数组及条件,循环语句学习
Nov 11 PHP
php二维数组排序与默认自然排序的方法介绍
Apr 27 PHP
php获取qq用户昵称和在线状态(实例分析)
Oct 27 PHP
php中多维数组按指定value排序的实现代码
Aug 19 PHP
在CentOS系统上从零开始搭建WordPress博客的全流程记录
Apr 21 PHP
PHP 验证身份证是否合法的函数
Feb 09 PHP
Yii2处理密码加密及验证的方法
May 12 PHP
解决laravel5中auth用户登录其他页面获取不到登录信息的问题
Oct 08 PHP
浅谈laravel5.5 belongsToMany自身的正确用法
Oct 17 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
Search File Contents PHP 搜索目录文本内容的代码
2010/02/21 PHP
PHP 开发环境配置(测试开发环境)
2010/04/28 PHP
PHP+ACCESS 文章管理程序代码
2010/06/21 PHP
全面解读PHP的人气开发框架Laravel
2015/10/15 PHP
php实现按天数、星期、月份查询的搜索框
2016/05/02 PHP
弹出模态框modal的实现方法及实例
2017/09/19 PHP
TP5框架实现自定义分页样式的方法示例
2020/04/05 PHP
JavaScript是否可实现多线程  深入理解JavaScript定时机制
2009/12/22 Javascript
[原创]js获取数组任意个不重复的随机数组元素
2010/03/15 Javascript
JQuery 学习笔记01 JQuery初接触
2010/05/06 Javascript
基于jQuery的模仿新浪微博时间的组件
2011/10/04 Javascript
jQuery中RadioButtonList的功能及用法实例介绍
2013/08/23 Javascript
js实现带搜索功能的下拉框实时搜索实时匹配
2013/11/05 Javascript
把字符串按照特定的字母顺序进行排序的js代码
2014/01/28 Javascript
Node.js中的模块机制学习笔记
2014/11/04 Javascript
Node.js实现文件上传
2016/07/05 Javascript
详解Bootstrap各式各样的按钮(推荐)
2016/12/13 Javascript
canvas红包照片实例分享
2017/02/28 Javascript
实例学习JavaScript读取和写入cookie
2018/01/29 Javascript
vue中axios请求的封装实例代码
2019/03/23 Javascript
[01:30:55]VG vs Mineski Supermajor 败者组 BO3 第三场 6.6
2018/06/07 DOTA
python实现对一个完整url进行分割的方法
2015/04/29 Python
使用Python自动生成HTML的方法示例
2019/08/06 Python
查看已安装tensorflow版本的方法示例
2020/04/19 Python
python使用多线程+socket实现端口扫描
2020/05/28 Python
Jones Bootmaker官网:优质靴子和鞋子在线
2020/11/30 全球购物
省优秀教师事迹材料
2014/01/30 职场文书
书法兴趣小组活动总结
2014/07/07 职场文书
2014年英语工作总结
2014/12/20 职场文书
2015大学迎新标语
2015/07/16 职场文书
聘任书范文大全
2015/09/21 职场文书
python数据库批量插入数据的实现(executemany的使用)
2021/04/30 Python
写一个Python脚本下载哔哩哔哩舞蹈区的所有视频
2021/05/31 Python
Python的property属性详细讲解
2022/04/11 Python
vue实现省市区联动 element-china-area-data插件
2022/04/22 Vue.js
Linux中一对多配置日志服务器的详细步骤
2022/07/23 Servers