WordPress评论添加验证码
文 / @UTHEME
虽然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" />' . '<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的值可以加密一下,验证那里再解密。

相关文章
-
WordPress插件:All in One WP Security & Firewall 怎么样(附:AIOWPS拦截垃圾评论设置教程) 2023-01-26 21:51:51
-
在 PHP 中如何通过一行代码就交换两个变量的值 2023-01-26 00:18:31
-
WordPress主题:Pin Premium (WordPress仿Pinterest样式瀑布流主题) 2023-01-25 23:36:43
-
免费WordPress主题:Maupassant(WordPress中文博客主题) 2023-01-25 23:31:29
-
WordPress响应式图片(Responsive Image)功能关闭:取消WordPress图片宽带和高度参数 2023-01-24 10:49:32
-
wordpress报错:修复MySQL 1064错误问题 错误原因和解决方法 2023-01-24 10:42:04
-
WordPress 实现静态化搜索结果页面的方法 2023-01-24 00:41:44
-
WP Rocket – 强大的WordPress缓存加速优化插件(附:WP Rocket插件设置过程与七折优惠码) 2023-01-24 00:41:44
-
get_permalink、get_the_permalink和the_permalink有啥区别? 2023-01-24 00:41:08
-
为什么选用WordPress搭建独立站? 2023-01-23 20:25:21