[转]WordPress技巧:为博客增加评论验证码功能

垃圾信息爆发的年代,SPAM 犹如洪水猛兽肆意泛滥,由此也导致验证码无处不在的现状。对于 WordPress 而言,可以使用官方提供的 Akismet 插件来有效防范垃圾评论的发布。

鉴于 Akismet 治标但不治本,也可通过修改代码,为评论表单加上简单的算术验证。之前芒果在多处见过这种方法,现作简要分享。

首先,编辑 WordPress 根目录下的 wp-comments-post.php 文件,找到以下代码(一般位于 70 行):

if ( '' == $comment_content )

在此语句之前,添加如下代码:

//算术验证开始
if ( !$user->ID ) {
$a = trim($_POST[a]);
$b = trim($_POST[b]);
$sub = trim($_POST[sub]);
if ((($a+$b)!=$sub)|| empty($sub)){
wp_die( __('错误:请输入正确的算术题结果。') );
}
}
//算术验证结束


然后,找到当前主题的评论模板,一般为 comments.php 文件。在提交按钮之前,插入以下代码:

<?php $a=rand(0,5); $b=rand(0,5); ?>
<input id=sub tabindex=3 size=22 name=sub />
<input type=hidden value="<?php echo $a ?>" name=a />
<input type=hidden value="<?php echo $b ?>" name=b />
验证:<?php echo $a ?>+<?php echo $b ?>

其中使用 rand() 函数产生随机数,计算难度可根据需要设定种子。

算术验证加上 Akismet 应该能全面防范 SPAM 信息。如果这样还有大量垃圾评论,那就得好好检讨自己的 RP 了。

转载自 芒果

This entry was posted in Wordpress and tagged . Bookmark the permalink.

4 Responses to [转]WordPress技巧:为博客增加评论验证码功能

  1. bao says:

    很有意思,也比较容易和主题风格融合

  2. ggkit says:

    不错不错,学习了

  3. 小雨 says:

    非常好~ 支持了!

  4. 魏风 says:

    不错的东东,支持下!

发表评论

您的电子邮箱不会被公开。 标记为 * 的区域必须填写

*

*

您可以使用这些 HTML 标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>