修改PHP脚本使WordPress拦截垃圾评论的方法示例


本文整理自网络,侵删。

拦截英文垃圾评论

由于绝大多数的垃圾评论都是英文的,所以国内不少朋友在使用 Some Chinese Please 插件,它可以有效地拦截内容中不带有中文字的comment和trackback(pingback),不写入数据库中,可有效地减小spam对blog服务器的无谓使用。虽然已经 2 年多没有更新,但还是可用的。

其实还可以简化下,直接将下面的代码添加到主题的 functions.php 文件,效果与使用 Some Chinese Please 插件相同:

/* refused spam */ 
function refused_spam_comments( $comment_data ) { 
$pattern = '/[一-龥]/u'; 
if(!preg_match($pattern,$comment_data['comment_content'])) { 
err('评论必须含中文!'); 
} 
return( $comment_data ); 
} 
add_filter('preprocess_comment','refused_spam_comments');

@Teddysun http://teddysun.com/ 经过实测反馈,Wordpress中并没有err这个函数(这个函数也许是存在于 @知更鸟 的主题里)。因此不会有提示信息出现。最好还是用wp_die函数,这样就会有提示信息。所以,上面的代码如果不生效,可以使用以下代码:

/* refused spam */ 
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');

针对那些使用技术手段,比如GET、POST等方式不填写前台表单,直接读取后台程序文件的spam,只有屏蔽IP才能缓解疯狗一样的攻势,其它什么验证码、滑动解锁等等都没用。

禁止某些IP访问

可以在.htaccess文件中添加:

Order Deny,Allow 
Deny from xxx.xxx.xxx.xx 
Deny from xxx.xxx.xxx.xx

拦截中文垃圾评论

如果发现大量垃圾评论是中文,那么可以用Willin Kan 写的小墙工具, 理论上可以 100% 屏蔽机器人发出的 spam. 如果是自然人提交评论, 小墙会在评论提交表单中加一个 hidden 变量, 如果后台检测不到这个变量, 则认定为 spam, 可以选择需要审核, 也可以直接过滤掉.

如果对方知道你用的 hidden 变量或者使用虚拟点击, 就可以破掉小墙. 但是 spam 本来就是小成本和以量取胜的事情, 除非与你与 spammer 结仇了, 我相信人家不会那么无聊来破你小墙. 而且机器人 spam 的数量占了绝大多数, 这个工具很有必要.

阅读剩余部分

相关阅读 >>

linux docker安装wordpress的方法详解教程

wordpress提示require_once() failed opening required的解决方法

wordpress更换主题之后出错的解决方法

wordpress禁止复制内容的实现方法

wordpress去除img标签的高度与宽度让图片自适应屏幕

wordpress小工具制作方法【附近期评论工具制作】

wordpress更换主题模板 究竟会不会影响网站seo

wordpress主题中无法显示浏览量问题的解决方法

wordpress中限制非管理员用户在文章后只能评论一次

wordpress主题制作中自定义头部的相关php函数解析

更多相关阅读请进入《wordpress》频道 >>



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...