念青博客 : 给WordPress评论添加算式验证功能


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

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

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

if ( ” == $comment_content )在此语句之前,添加如下代码:

//算术验证开始
if ( !$user->ID ) {
$aaa = trim($_POST[aaa]);
$bbb = trim($_POST[bbb]);
$subab = trim($_POST[subab]);
if((($aaa+$bbb)!=$subab)|| empty($subab)){
wp_die( __(请重新计算算式) );
}
}
//算术验证结束

 然后,找到当前主题的评论模板,一般为 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)’); ?>是显示限定为(必需)项,可根据应用主题不同作相应修改。

随机日志

“给WordPress评论添加算式验证功能” 有 11 条评论

  1. 又说 说道:

    好吧,这算什么意思。

  2. 又说说道:

    测试运算是不是无用处。测试运算是不是无用处。测试运算是不是无用处。

  3. 李奇说道:

    貌似放在我的博客里不管用,我再试试


到此一游