Geetest极验解决Wordpress评论验证

WordPress垃圾评论可谓是非常严重,为了解决垃圾评论,也有很多开发者制作了相关插件与功能代码。极验证的wordpress插件官网也给出了相关插件,不过那已经是几年前的事情了,至于兼容不兼容,笔记倒是没有测试过,此教程使用代码来自v2ex,相关插件可以自行测试。使用此功能时请先在极验证官网申请行为验证并增加验证

Geetest极验解决Wordpress评论验证

下面说说在wordpress中的应用,首先我们要为评论表单添加自定义字段,以显示极验证

add_action('comment_form', array($this, 'show_geetest_in_comments'));

然后就是插入数据验证

add_filter('preprocess_comment', array($this, 'validate_geetest_comment'), 100, 1);

接着就是通过极验证的相关API添加相关js代码至wordpress中,大致代码如下

 function script_geetest_in_comments(){
		if(is_singular()){
        wp_enqueue_script('gt', get_template_directory_uri() . '/inc/geetest/assets/gt.js');
        $geetestlib = new geetestlib();

        $output = $geetestlib->get_widget('【public_key】', $this->options['register'], '【private_key】', "gt_reply", 'zh-cn');

        $js = <<<HEREDOC
				<script>
                    //将验证码显示在submit,提交按钮前面
                    var comment_submit = document.getElementById('submit');
                    var gt_holder = document.getElementById('gt_reply');
                    comment_submit.parentNode.insertBefore(gt_holder,comment_submit);
                </script>
HEREDOC;
        $inline = $output . $js;

        wp_add_inline_script('gt', $inline);
		}
    }

请注意,这里使用的wp_add_inline_script函数,此函数在wordpress4.5版本中引用,请注意你的wordpress版本。将【public_key】与【private_key】替换成你的极验证ID与KEY。

最终效果如下

Geetest极验解决Wordpress评论验证

此功能我已集成在最新的wordpress shortcut主题中,你可以下载查看相关代码,会员用户可以直接在文章结尾处下载。

笔记

WordPress theme shortcut V1.2

2018-09-2368

至此教程结束,如果您需要wordpress技术帮助,可以在本站的个人中心开通相关会员,我将为你提供5 X 12小时的wordpress服务。