要过滤留言还是很简单的,需要手动修改一下代码即可。
能过滤掉机器人留言,但是坏处就是别人留言时,也没办法填写邮箱和网址了。

因为中国人一般给人留言,也不乐意填写自己的邮箱,就算填写也是随意填写,没blog的人也不会输入网址的。
所以通过这个方式过滤机器人留言,百分百好用的。

修改 admin/var/Widget/Feedback.php 两处。
第一处修改:

 if ($this->options->commentsRequireMail && !$this->user->hasLogin()) {
        $validator->addRule('mail', '', _t('必须填写邮件'));
    }

为:

        if (!empty($this->options->commentsRequireMail) && !$this->user->hasLogin()) {
        $validator->addRule('mail', '', _t('你是机器人?'));
    }

第二处修改:

        if ($this->options->commentsRequireUrl && !$this->user->hasLogin()) {
        $validator->addRule('url', 'required', _t('必须填写网址'));

为:

        if (!empty($this->options->commentsRequireUrl) && !$this->user->hasLogin()) {
        $validator->addRule('url', 'required', _t('你是机器人?'));

然后把后台管理里面的留言时“必须填写邮件”和“必须填写网址”这两个勾上,即可。

基于机器人留言的特征都是代码自动化的,其特征是一定会带上邮件和网址,现在通过修改代码和设置,判断留言里如果带有mail和url两个参数,就判定为机器人。然后再把页面填写邮箱和网址的输入框用 style="display:none" 隐藏即可。