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中实现动态代理
Oct 09 PHP
3种平台下安装php4经验点滴
Oct 09 PHP
PHP高自定义性安全验证码代码
Nov 27 PHP
php 搜索框提示(自动完成)实例代码
Feb 05 PHP
PHP的简易冒泡法代码分享
Aug 28 PHP
php获取用户浏览器版本的方法
Jan 03 PHP
php+mysqli实现将数据库中一张表信息打印到表格里的方法
Jan 28 PHP
PHP也能干大事之PHP中的编码解码详解
Apr 20 PHP
PHP实现批量修改文件后缀名的方法
Jul 30 PHP
ZF框架实现发送邮件的方法
Dec 03 PHP
Zend Framework框架路由机制代码分析
Mar 22 PHP
CI框架简单分页类用法示例
Jun 06 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批量生成随机用户名
2008/07/10 PHP
PHP 工厂模式使用方法
2010/05/18 PHP
Fatal error: session_start(): Failed to initialize storage module: files问题解决方法
2014/05/04 PHP
php实现判断访问来路是否为搜索引擎机器人的方法
2015/04/15 PHP
php断点续传之文件分割合并详解
2016/12/13 PHP
php使用lua+redis实现限流,计数器模式,令牌桶模式
2019/04/04 PHP
IE和Firefox下event事件杂谈
2009/12/18 Javascript
jquery下异步提交表单 异步跨域提交表单
2010/11/17 Javascript
JQuery 弹出框定位实现方法
2010/12/02 Javascript
jquery动态加载select下拉框示例代码
2013/12/10 Javascript
Jquery $.getJSON 在IE下的缓存问题解决方法
2014/10/10 Javascript
jQuery预加载图片常用方法
2015/06/15 Javascript
jQuery删除当前节点元素
2016/12/07 Javascript
JavaScript实现的鼠标响应颜色渐变效果完整实例
2017/02/18 Javascript
Vue.js实战之组件的进阶
2017/04/04 Javascript
js排序与重组的实例讲解
2017/08/28 Javascript
深入浅析JavaScript中的RegExp对象
2017/09/18 Javascript
JS实现的base64加密解密操作示例
2018/04/18 Javascript
vue使用原生js实现滚动页面跟踪导航高亮的示例代码
2018/10/25 Javascript
vue-router的钩子函数用法实例分析
2019/10/26 Javascript
JS+canvas五子棋人机对战实现步骤详解
2020/06/04 Javascript
使用Python实现博客上进行自动翻页
2017/08/23 Python
Python3 获取一大段文本之间两个关键字之间的内容方法
2018/10/11 Python
Django管理员账号和密码忘记的完美解决方法
2018/12/06 Python
利用Python查看微信共同好友功能的实现代码
2019/04/24 Python
Python实现蒙特卡洛算法小实验过程详解
2019/07/12 Python
Django模型中字段属性choice使用说明
2020/03/30 Python
Python函数参数定义及传递方式解析
2020/06/10 Python
Python如何在windows环境安装pip及rarfile
2020/06/15 Python
使用python实现名片管理系统
2020/06/18 Python
html5实现多图片预览上传及点击可拖拽控件
2018/03/15 HTML / CSS
公司总经理岗位职责
2014/03/15 职场文书
领导班子整改措施
2014/10/24 职场文书
2015年宣传部部长竞选演讲稿
2014/11/28 职场文书
电影开国大典观后感
2015/06/04 职场文书
军事理论课感想
2015/08/11 职场文书