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 连接mssql数据库 初学php笔记
Mar 01 PHP
PHP常用代码大全(新手入门必备)
Jun 29 PHP
php中模拟POST传递数据的两种方法分享
Sep 16 PHP
php中global和$GLOBALS[]的分析之一
Feb 02 PHP
浅析SVN常见问题及解决方法
Jun 21 PHP
PHP Session 变量的使用方法详解与实例代码
Sep 11 PHP
php smarty truncate UTF8乱码问题解决办法
Jun 13 PHP
php判断邮箱地址是否存在的方法
Feb 13 PHP
PHP获取当前文件的父目录方法汇总
Jul 21 PHP
源码分析 Laravel 重复执行同一个队列任务的原因
Dec 25 PHP
PHPMAILER实现PHP发邮件功能
Apr 18 PHP
php时间戳转换代码详解
Aug 04 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/25 PHP
PHP 翻页 实例代码
2009/08/07 PHP
php str_pad() 将字符串填充成指定长度的字符串
2010/02/23 PHP
php判断ip黑名单程序代码实例
2014/02/24 PHP
php计算税后工资的方法
2015/07/28 PHP
利用PHP实现开心消消乐的算法示例
2017/10/12 PHP
PHP PDOStatement::bindColumn讲解
2019/01/30 PHP
javascript编程起步(第四课)
2007/02/27 Javascript
解决JS浮点数运算出现Bug的方法
2013/03/12 Javascript
js获取url参数代码实例分享(JS操作URL)
2013/12/13 Javascript
IE8下Jquery获取select选中的值post到后台报错问题
2014/07/02 Javascript
JQuery球队选择实例
2015/05/18 Javascript
jQuery+CSS实现一个侧滑导航菜单代码
2016/05/09 Javascript
Bootstrap模块dropdown实现下拉框响应
2016/05/22 Javascript
JQuery PHP图片在线裁剪实例
2020/07/27 Javascript
ES6新特性一: let和const命令详解
2017/04/20 Javascript
Angular 2 利用Router事件和Title实现动态页面标题的方法
2017/08/23 Javascript
微信小程序实现action-sheet弹出底部菜单功能【附源码下载】
2017/12/09 Javascript
Vue 全家桶实现移动端酷狗音乐功能
2018/11/16 Javascript
nodejs通过钉钉群机器人推送消息的实现代码
2019/05/05 NodeJs
Python绘制七段数码管实例代码
2017/12/20 Python
Python多进程池 multiprocessing Pool用法示例
2018/09/07 Python
在python中pandas的series合并方法
2018/11/12 Python
python 缺失值处理的方法(Imputation)
2019/07/02 Python
tensorflow将图片保存为tfrecord和tfrecord的读取方式
2020/02/17 Python
解决python pandas读取excel中多个不同sheet表格存在的问题
2020/07/14 Python
Python 在 VSCode 中使用 IPython Kernel 的方法详解
2020/09/05 Python
英国经典球衣网站:Classic Football Shirts
2017/05/20 全球购物
资源工程专业毕业生求职信
2014/02/27 职场文书
机房搬迁方案
2014/05/01 职场文书
领导干部民主生活会自我剖析材料范文
2014/09/20 职场文书
评先进个人材料
2014/12/29 职场文书
趣味运动会通讯稿
2015/07/18 职场文书
mongodb的安装和开机自启动详细讲解
2021/08/02 MongoDB
python3操作redis实现List列表实例
2021/08/04 Python
Pygame Time时间控制的具体使用详解
2021/11/17 Python