WordPress评论添加验证码

虽然WordPress自带插件Akismet已经非常强大,足以挡住大多数垃圾评论,但Akismet只是将这些垃圾评论放到了“垃圾”里,仍然需要我们手动去清理,如果连垃圾评论都不想看到,还是给WordPress评论加个验证机制吧!

首先为表单增加验证字段,在主题文件functions.php中添加如下代码

function verification_fields($fields) {
$num_o = rand(0, 99);
$num_t = rand(0, 99);
$fields['verification'] = '<input name="num_o" value="' . $num_o . '" type="hidden" />' .
'<input name="num_t" value="' . $num_t . '" type="hidden" />' .
'&lt;p class="verification-code"><label for="verification-code">验证:</label>' .
$num_o . ' + ' . $num_t . ' = ' . '<input id="verification-code" name="pcodes" type="text" value="" size="4" /></p>';
return $fields;
}
add_filter('comment_form_default_fields', 'verification_fields');

这里给评论表单添加了一个算术运算的验证,然后添加提交评论时验证计算结果的代码,仍然是放在主题文件functions.php中:

function verification_code() {
if ( ! $user->ID ) {
$num_o = trim($_POST['num_o']);
$num_t = trim($_POST['num_t']);
$pcodes = trim($_POST['pcodes']);
if( $pcodes != $num_o + $num_t ) {
wp_die( __('错误提示:请输入正确的验证码。') );
}
}
}
add_filter('pre_comment_on_post', 'verification_code');

在实际应用中,这种简单的算术计算可能还是会被灌水,可以考虑将$num_o + $num_t生成为图片,并用条纹干扰再输出,另外隐藏字段中$num_o和$num_t的值可以加密一下,验证那里再解密。

给TA打赏
共{{data.count}}人
人已打赏
WordPress教程

WordPress不用插件实现评论回复邮件通知

2021-4-19 23:30:41

WordPress教程

WordPress输出文章固定链接标签:the_permalink

2021-4-20 11:29:52

下载说明

  • 1、微码盒所提供的压缩包若无特别说明,解压密码均为weimahe.com
  • 2、下载后文件若为压缩包格式,请安装7Z软件或者其它压缩软件进行解压;
  • 3、文件比较大的时候,建议使用下载工具进行下载,浏览器下载有时候会自动中断,导致下载错误;
  • 4、资源可能会由于内容问题被和谐,导致下载链接不可用,遇到此问题,请到文章页面进行反馈,以便微码盒及时进行更新;
  • 5、其他下载问题请自行搜索教程,这里不一一讲解。

站长声明

本站大部分下载资源收集于网络,只做学习和交流使用,版权归原作者所有;若为付费资源,请在下载后24小时之内自觉删除;若作商业用途,请到原网站购买;由于未及时购买和付费发生的侵权行为,与本站无关。本站发布的内容若侵犯到您的权益,请联系本站删除,我们将及时处理!
0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索