给WordPress评论添加计算验证功能

鉴于 Akismet 治标但不治本,可通过修改代码,为评论表单加上简单的算术验证。

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

//算术验证开始
if ( !$user->ID ) {
$aaa = trim($_POST[aaa]);
$bbb = trim($_POST[bbb]);
$subab = trim($_POST[subab]);
if((($aaa+$bbb)!=$subab)|| empty($subab)){
wp_die( __(请重新计算算式) );
}
}
//算术验证结束
if ( '' == $comment_content ) //!!!在此语句之前,添加上面的代码!!!

然后,找到当前主题的评论模板,一般为 comments.php 文件。在填写用户/电邮之后、发表评论按钮之前,插入以下代码:

<?php $aaa=rand(0,5); $bbb=rand(4,9); ?><?php echo $aaa; ?>+<?php echo $bbb; ?>=
<input type="text" name="subab" id="subab" size="2" tabindex="5" style="width:30px" /><?php if ($req) _e('(required)'); ?>
<input name="aaa" value="<?php echo $aaa; ?>" type="hidden" />
<input name="bbb" value="<?php echo $bbb; ?>" type="hidden" /></p>

其中rand() 函数用以产生随机数,可根据计算难度需要设定种子。<?php if ($req) _e(‘(required)’); ?>是显示限定为(必需)项,可根据应用主题不同作相应修改。

转载自:http://blog.nianqing.net/?p=349

作者: LMS

天行贱,君子自强自息。

标签

《给WordPress评论添加计算验证功能》有10个想法

  1. 这个主要验证什么?怎么验证修复网站格式的正确性呢? 比如 如果网址填错了自动清空?

发表评论

电子邮件地址不会被公开。 必填项已用*标注