不用插件实现WordPress屏蔽垃圾广告评论 PHP代码实现过滤广告留言

最近久久博客www.99xq.cn被垃圾广告评论整疯了,每日提交上千条垃圾评论内容,删除都没法删,虽然有审核机制,但是也给正常的读者交流造成了很大的压力。于是乎想办法屏蔽WordPress来及广告评论内容,试了以下几个方法:

1、注册后才能发评论:

后台-设置-讨论 这里开启 ”用户必须注册并登录才可以发表评论“,则要求必须注册后才能评论,考虑到注册环节比较长,放弃此方案;

2、寻找广告过滤插件:

Akismet 是 WordPress 官方推荐的一款 WordPress 防垃圾评论插件,默认安装,官方介绍如下:

Akismet会根据我们的全球垃圾评论数据库检查您的评论和联系表单提交,以保护您和您的站点免受恶意内容的侵害。您可以在站点的“评论”管理屏幕上查看垃圾评论。

Akismet的主要功能包括:

  • 自动检查所有评论,并筛选出垃圾评论。

  • 每个评论都有状态记录,因此您可以轻松查看 Akismet 发现或清除哪些评论与哪些评论被主持人判断是否是垃圾评论。

  • 在评论正文中,显示URL与显示隐藏或误导性的连结。

  • 主持人可以看到每个用户的批准注释数。

  • 丢弃功能彻底阻止最恶劣的垃圾评论,节省您的磁盘空间并加快您的站点速度。

备注:一旦激活,系统将提示您获取 Akismet.com API 密钥以使用它。个人博客免费使用密钥; 付费订阅适用于企业和商业站点。

启用Akismet插件后要求注册使用apikey,有点麻烦果断放弃,设想的是如果每次评论要请求接口,效率可能会降低,如下图:

Akismet垃圾评论屏蔽过滤插件

然后通过插件中心搜索了 垃圾广告评论 插件,找到一款百度的”Baidu TextCensor For Comments“插件,官方介绍如下:

基于百度文本内容审核技术来提供WordPress评论内容审核,对网站用户的评论信息检测,一旦发现用户提交恶意垃圾内容,可以做到文本的自动审核与实时过滤。

依赖第三方服务

  • 依赖百度AI文本审核技术:https://ai.baidu.com/tech/textcensoring

  • 使用说明:https://ai.baidu.com/ai-doc/ANTIPORN/Vk3h6xaga

  • 即在WordPress中有新的评论时,将会调用百度文本审核接口进行验证,验证结果分为4种:1. 合规、2. 不合规、3. 疑似、4. 审核失败

  • 不改变原有的讨论规则,不合规时提示重新评论;疑似和审核失败时写数据库,人工二次审核

安装后,需要到百度后台设置秘钥,并且有调用总数量限制,果断放弃。

3、作为一个PHPer,还是自己动手修改代码实现过滤广告留言:

因为博主使用的是twentysixteen风格,所以文件路径是:/web/www.99xq.cn/wp-content/themes/twentysixteen/functions.php,找到你实用的模板风格下的 functions.php文件。

在文件最下面,添加以下代码:

/*评论过滤纯英文,日文内容,代码来自 www.99xq.cn */

function wp_refused_spam_comments($comment_data) {

$pattern = '/[一-龥]/u';

$jpattern = '/[ぁ-ん]+|[ァ-ヴ]+/u';

if (!preg_match($pattern, $comment_data['comment_content'])) {

exit('评论中必须包含一个汉字!');

}

if (preg_match($jpattern, $comment_data['comment_content'])) {

exit('评论不支持日文!');

}

return ($comment_data);

}

add_filter('preprocess_comment', 'wp_refused_spam_comments');

//禁止评论内容包括链接,代码来自 www.99xq.cn

function wp_comment_post( $incoming_comment ) {

$http = '/[href="|rel="nofollow"|http:\/\/|<\/a>]/u';

if(preg_match($http, $incoming_comment['comment_content'])) {

exit( "禁止发链接地址!" );

}

return( $incoming_comment );

}

add_filter('preprocess_comment', 'wp_comment_post');

作用机制就是屏蔽纯英文内容,日文内容以及内容中包括超链的广告评论,这样就可以阻止大部分垃圾评论内容了。此代码函数部分在任何cms中均可用,只是具体调用的时候需要稍微调整一下即可。

本文由久久博客www.99xq.cn  原创,转载请注明出处 https://www.99xq.cn/php/324.html

发表评论

电子邮件地址不会被公开。 必填项已用*标注