WordPress几种阻止垃圾机器人评论的方法有代码/插件

释放双眼,带上耳机,听听看~!

前言

我是发现了只要是使用WordPress建站的朋友,都反应有垃圾评论,似乎WordPress和垃圾评论是一对“孪生兄弟”只要有WordPress的地方垃圾评论都会在,无论在国内还是国外搭建的Wordpress网站,无论你权重高低无论你流量多少,垃圾评论都会自动找上门来!

WordPress垃圾评论数量多容易掩盖正常的读者评论,批量删除垃圾评论又容易造成误删,如果垃圾评论发布机器持续不断地向网站提交评论请求,频率足够高的话则足以演变成一种网站攻击,配置差一些的网站虚拟主机或轻量应用服务器很有可能因此而运行缓慢,严重者造成服务器宕机,导致正常用户无法访问。

所以今天这里给大家整理撰写几种阻止垃圾评论的方法,首先是WordPress自带了一些简单的防止垃圾评论的设置,如果能够充分利用好这些功能,就能从Wordpress程序本身达到一定的反垃圾评论效果了。

第一种WordPress自带阻止方法

如下图勾选上用户必须注册并登录才可以发表评论

%title插图%num

还可以把如下图的也勾选上

%title插图%num

优缺点讲解

1、开启“只有注册并登录才能发表评论”功能不建议开启,具众多博主站长反应这也会导致正常用户热情下降,具少量站长博主反应开启这个会有更多注册用户的增加。

2、开启“评论者先前须有评论通过了审核”这项,对反垃圾评论很帮助,建议开启,但是老用户如果换了邮箱则又会被当成新用户,评论仍需审核。

第二种插件法

市面上有很多阻止垃圾评论的插件,有很多都很优秀,这里就随便找一款吧,这个具体用谁的,看你自己的喜好了。

下面要介绍的是NoSpamNX插件,插件下载地址:https://wordpress.org/plugins/nospamnx/

NoSpamNX的原理是将评论框的名称属性改成了随机数,并添加一个新的隐藏的评论框,机器人发评论时会把隐藏的评论框也填满数据,而人工评论不会是这样。插件根据此特征从而阻止过滤掉机器人的垃圾评论。

纯代码法

将如下代码添加到WordPress主题目录里的function.php中即可

// 垃圾评论拦截 https://www.jlii.net
class anti_spam {
    function anti_spam() {
        if ( !current_user_can('level_0') ) {
            add_action('template_redirect', array($this, 'w_tb'), 1);
            add_action('init', array($this, 'gate'), 1);
            add_action('preprocess_comment', array($this, 'sink'), 1);
        }
    }
    function w_tb() {
        if ( is_singular() ) {
            ob_start(create_function('$input','return preg_replace("#textarea(.*?)name=([\"\'])comment([\"\'])(.+)/textarea>#",
                "textarea$1name=$2w$3$4/textarea><textarea name=\"comment\" cols=\"100%\" rows=\"4\" style=\"display:none\"></textarea>",$input);') );
        }
    }
    function gate() {
        if ( !empty($_POST['w']) && empty($_POST['comment']) ) {
            $_POST['comment'] = $_POST['w'];
        } else {
            $request = $_SERVER['REQUEST_URI'];
            $referer = isset($_SERVER['HTTP_REFERER'])         ? $_SERVER['HTTP_REFERER']         : '隐瞒';
            $IP      = isset($_SERVER["HTTP_X_FORWARDED_FOR"]) ? $_SERVER["HTTP_X_FORWARDED_FOR"] . ' (透过D理)' : $_SERVER["REMOTE_ADDR"];
            $way     = isset($_POST['w'])                      ? '手动操作'                       : '未经评论表格';
            $spamcom = isset($_POST['comment'])                ? $_POST['comment']                : null;
            $_POST['spam_confirmed'] = "请求: ". $request. "\n来路: ". $referer. "\nIP: ". $IP. "\n方式: ". $way. "\n內容: ". $spamcom. "\n -- 记录成功 --";
        }
    }
    function sink( $comment ) {
        if ( !empty($_POST['spam_confirmed']) ) {
            if ( in_array( $comment['comment_type'], array('pingback', 'trackback') ) ) return $comment;
            //方法一: 直接挡掉, 將 die(); 前面两斜线刪除即可.
            die();
            //方法二: 标记为 spam, 留在资料库检查是否误判.
            //add_filter('pre_comment_approved', create_function('', 'return "spam";'));
            //$comment['comment_content'] = "[ 判断这是 Spam! ]\n". $_POST['spam_confirmed'];
        }
        return $comment;
    }
}
$anti_spam = new anti_spam();

下面再分享一种方法在评论区的地方增加一个数字验证码如下图这样

%title插图%num

由于我是dux主题,请自觉根据自己的主题进行修改,首先将如下代码添加到WordPress主题目录下的function.php中

//dux主题在评论区添加数字验证码功能 https://www.jlii.net
function loper_protection_math(){
# 数字加法两个随机数, 范围0~99
$num1=rand(0,9);
$num2=rand(0,9);
echo "<input type=\"text\" name=\"sum\" class=\"text\" value=\"\" size=\"25\" tabindex=\"4\" placeholder=\"$num1 + $num2 = ?\" >\n";
echo "<input type=\"hidden\" name=\"num1\" value=\"$num1\">\n";
echo "<input type=\"hidden\" name=\"num2\" value=\"$num2\">";
echo "<label for=\"math\">请输入(计算结果)</label>\n";
}
function loper_protection_pre($commentdata){
$sum=$_POST['sum'];
switch($sum){
case $_POST['num1']+$_POST['num2']:
break;case null:err('错误: 请输入验证码。');
break;default:err('错误: 验证码错误。');}
return $commentdata;}
if($comment_data['comment_type']==''){
add_filter('preprocess_comment','loper_protection_pre');}

然后在找到主题目录下的comments.php,在下图如下代码段下面添加代码

%title插图%num

<?php loper_protection_math();?>

给TA充电
共{{data.count}}人
人已充电
WordPress教程技术教程源码分享

WordPress复制文章内容自动添加版权提醒和原文链接

2022-3-21 16:50:57

文章聚合源码分享

MCSManager —— 全中文,分布式,虚拟化,开箱即用,支持 Minecraft 和其他游戏的服务端管理面板

2022-4-10 19:22:35

版权免责声明

请使用迅雷软件下载,否则个别下载链接无法打开

1、本网站名称:彽调菂猫博客
2、本站永久网址:https://www.wtdxz.com
3、 本站大部分资源解压密码均为: www.wtdxz.com 如密码有误,请查看此处【解压密码】
4、请勿随意转载/分享/“菜”集本站资源,转载/分享/”菜”集请添加本站链接。
5、本站资源来源于互联网收集/个人购买,如有侵犯到您的权益,请查看【版权声明】
6、本站提供的所有资源均来自互联网搜索,站内资源为网友个人学习或测试研究使用,未经原版权作者许可,禁止用于任何商业环境,任何人不得擅作它用,否则后果自负!请在下载24小时内删除!为尊重作者版权,请购买原版作品,支持你喜欢的作者,谢谢!
7、本站资源大多存储在云盘,如发现链接失效 请联系我们 我们会第一时间更新。

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索