© / Posted in 知识如海 / July 22, 2009

今天看了下博客~~恩,很正常,呵呵,也没什么人看没什么人留言~~然后进后台看看~~我 日~~500多条评论~~马上悟了,遭垃圾评论了~~

原来刚开始用WordPress的时候就有想过装个反垃圾评论的插件~~自带的那个Akismet要申请key,懒得申请~~其他的又不知道好坏,好不好用,简单不简单,耗不耗资源。而且又一直没发现有垃圾评论,就这么一直留着了~~谁知道,前段时间net . ru被封,无奈之下把备份博客放到了国内地平线空间,继续用net . ru域名~~结果今天居然收到垃圾评论了~~呵呵~~

是时候弄个反垃圾的了~~不想太复杂的,也不太喜欢安装插件,插件这东西,太多了不好~~于是就找那个印象中算术题的~~找到了一个用添加代码的办法来实现的~~这个好~~呵呵~~~

下面一段是转自:Adwi Blog 的

方法:

1.修改 wp-comments-post.php :

查找:

if ( '' == $comment_content )

在其上面添加代码:
//Fufu_checkcode
if ( !$user->ID ) {
$aaa = trim($_POST[aaa]);
$bbb = trim($_POST[bbb]);
$subab = trim($_POST[subab]);
if((($aaa+$bbb)!=$subab)|| empty($subab)){
wp_die( __('Error: Please enter the correct results of the math problems.') );
}
}
//Fufu_end

然后修改当前主题目录下的 comments.php (我用的elegantbox) ,在适当的位置添加代码,我是在提交按钮之前添加的,即查找:
<input name="submit" type="submit" id="submit"

在其前面添加代码:
<?php if (!$user_ID) : ?> <?php $aaa=rand(0,5); $bbb=rand(3,9); ?> <input type="text" name="subab" id="subab" size="2" tabindex="5" /><?php echo $aaa; ?>+<?php echo $bbb; ?>? <?php if ($req) _e('(required)','elegantbox'); ?> <input name="aaa" value="<?php echo $aaa; ?>" type="hidden" /> <input name="bbb" value="<?php echo $bbb; ?>" type="hidden" /> <?php endif; ?>

如果你的主题不是 elegantbox的话下面这段代码要做相应的修改,这段代码的意思是“(必填)”需要对应模板的语言。
<?php if ($req) _e('(required)', 'elegantbox'); ?>

修改好后,用用看实际的效果如何吧。

------------------------------------------------我是华丽的分割线--------------------------------------------

上面是别人的文章~~呵呵,虽然功能很简单,可以自己添加,但是懒得去找到底在哪添加,于是找到了他的文章~~就直接用了~~算数结果的输入框可以自己改,想要什么效果应该都很容易改吧~~代码实在不复杂,不过我觉得还是放那个位置的确不错~~因为在登录,或者曾经输入过信息的时候,再次评论会根据cookie,不用再输入信息,而且也不显示。所以如果放在姓名邮件网址的下面会很孤零零的。

他的代码,我就加了一小句,呵呵~~因为他已经设置了如果是注册用户,就不用输入答案也能评论,不过在评论页面这个算术题还是会显示出来,

我就在第二段代码小加了个<?php if (!$user_ID) : ?> 和代码之后加<?php endif; ?>

这样一来,已登录的注册用户看的时候就不会显示算术题了,呵呵~~

上一篇:wordpress 2.8 XSS漏洞 | 下一篇:错过日全食

本文有 30 篇评论 ↓↓

  1. hl hl

    这方法好,学习

  2. 哈哈~进来学习一下哇

添加新评论 ↑↑