评论是博客的重头戏,也是WordPress中比较重要的功能。本文主要介绍如何配置WordPress原生的评论功能、如何定制评论表单以及一些第三方评论管理工具。

配置评论功能

访问仪表盘->设置->讨论(Discussion),你会看到一系列评论相关的设置,大体分为以下几个部分:

默认文章设置
 – 是否允许评论,是否允许Pings(trackback和pingback),这些设置可以被每篇文章中的设置覆盖。

其他评论设置
– 评论表单相关,

何时发送电子邮件
– 邮件提醒,帮助管理员管理评论

在评论显示之前
– 评论审核机制

评论审核
 评论自动审核规则设置

评论黑名单
设置通过IP地址或关键字识别垃圾评论的规则

头像
– 评论头像设置。WordPress的评论头像是依靠电子邮件地址来产生的,到gravatar.com注册并上传头像,你就可以在任何WordPress博客通过填写电子邮箱使用自己全球通用的头像了。

WordPress默认的评论设置比较合理,你可以根据自己的需要修改,但需要注意几个地方:

1. 启用评论嵌套,最多嵌套5层,注意不要嵌套层数过多,会出现性能问题,无限嵌套评论是不可取的。

2. 分页显示评论,当评论太多时,分页很有用处。你可以这样设置分页:

分页显示评论,每页显示20(这个随意)条评论,默认显示最后一页
在每个页面顶部显示新的评论

解释:评论总是按照时间顺序排序的,分页只是将他们分割到不同页面,不会让本该在最后一页的评论显示到第一页。但你可以通过设置“在每个页面顶部显示新的/旧的评论”来改变每一页的评论排序。

WordPress评论默认的分页导航是“上一页”、“下一页”的形式,如果你更喜欢数字导航,可以通过修改模板来达到目的。以twentyeleven主题为例,找到comments.php文件第41行

默认导航代码

div class="nav-previous"><?php previous_comments_link( __( '&larr; Older Comments', 'twentyeleven' ) ); ?></div>
<div class="nav-next"><?php next_comments_link( __( 'Newer Comments &rarr;', 'twentyeleven' ) ); ?></div>

修改为

<div class="comments-nav"><?php paginate_comments_links( array('prev_text' => '«', 'next_text' => '»') ); ?></div>

这里用到了WordPress原生的函数paginate_comments_links()

修改评论表单

WordPress评论表单默认有四项:昵称(Name)、电子邮箱(Email、网站(Website)、评论内容(Comments)。

如果后台设置用户必须填写姓名和电子邮箱才可以发表评论,那么前两项是必填项目。网站在任何情况下都是可选的,但很多不懂的用户会认为网站也是必填的,于是随便写个字符串进去。更多情况下,到处发垃圾评论的人更是对网站这一项青睐有加。

如果你不喜欢让“网站”这一项给你制造垃圾留言、迷惑那些不了解的用户,可以去掉这一项。方法很简单,在主题的functions.php中写如下代码:

function url_filtered($fields)
{
  if(isset($fields['url']))
	unset($fields['url']);
  return $fields;
}
 
add_filter('comment_form_default_fields', 'url_filtered');

你甚至可以只保留用户名和评论这两项,让留言框干净利落。

function url_filtered($fields)
{
  if(isset($fields['url']))
	unset($fields['url']);
  if(isset($fields['email']))
   unset($fields['email']);
  return $fields;
}
 
add_filter('comment_form_default_fields', 'url_filtered');

简单的留言框会让那些真正需要留言的用户发表评论,让spam评论者对你的网站绝望。

过滤垃圾评论

WordPress官方的反垃圾评论插件叫Akismet,已经包含在WordPress的安装中。使用方法很简单,访问仪表盘->插件->Akismet 配置,Akismet要求输入一个Akismet API Key,只要你有电子邮箱,就可以申请到API Key,并且可以用在多个WordPress网站上。

注册Akismet

访问这里注册

Akismet提供免费和收费版本,个人版本是免费的,注册时记得选择Personal。

akismet注册

默认的设置是提供$36美金的捐赠,如果你不想捐赠,把右侧那个滑动条拖拽到最左边就可以了,小人不高兴你就不用付费了。

你可以安装第三方提供的反垃圾评论插件,例如国人喜欢用的WP Anti Spam

第三方评论服务提供商

当然,如果你不喜欢自己去修改WordPress的评论框,如果你发现Ajax留言、数字分页甚至社会化分享等功能让你头疼,可以通过安装第三方评论服务插件解决这一系列问题。

比较有名的第三方评论服务提供商:

评论啦 pinglun.la

  • 评论数据存储在评论啦的服务器上,可以一键写会本地数据库
  • 保留WordPress原生的审核机制,在此基础上有一定的扩展
  • 社会化分享评论

评论啦

多说 duoshuo.com

  • 以微博的理念设计,数据同步写会WordPress,但在同步方面还有很多问题
  • 通过Akismet过滤垃圾评论,不支持WordPress原生的审核机制,过滤人工垃圾留言效果不理想
  • 社会化分享评论

多说评论

38条留言

  1. 请教一下啊,我的评论框不允许嵌套回复,然后我想在每个用户的评论下面再加上一个多说的评论框,这怎么实现呢?

    1. WordPress支持嵌套评论的,你的主题不支持吗?多说和WordPress的评论是二选一,不能同时用吧。

  2. 请教一个问题,在后台文章页内自定义了字段,每次编辑的时候,已经设置的字段值怎么自动填充呢?

  3. 亲,我想请教一下,如果用第三方登入,比如facebook 或者qq登入然后评论 这个可以做么!求大神指点,或者看我这个博客也可以

  4. 如何修改多说评论框,添加图片双传功能,或非多说评论插件添加评论插入图片功能。

    1. 抱歉,我早就不用多说了,不太清楚现在的多说插件是怎么写的,但你说的功能恐怕很难在你这边实现,建议你把这些功能需求反馈给作者。

  5. SOLA,还有一件事,想问你,因为现在网站在测试中,如果不想让Google ,MSN, YAHOO,BAIDU 搜索到,那个robots.txt 应该怎么写呢?谢谢

    1. 你装wordpress的时候难道没有搜索引擎的提示吗? 你还是问下谷歌吧

    2. 我下午换主机来,你的评论貌似没倒过来。
      你谷歌搜到的是通用方法,没有错误。只是WordPress安装的时候应该有问你是不是允许搜索引擎收录。
      你可以到设置->阅读下面看看,有没有这一项
      建议搜索引擎不索引本站点

      另外,也可以装coming soon插件,这样只有登录后才能看到站点内容,不登陆只能看到coming soon页面。

      1. 谢谢你的建议设置->阅读下面的建议搜索引擎不索引本站点,我也选上了,不过那个coming soon插件这个插件听来和它的名字很好用,不过呢,现在在测试中,得问问身边的朋友看看有没有什么BUG,所以不让GOOGLE访问就行 了,谢谢

  6. SOLA有没有好的WordPress 备份插件介绍,谢谢

    1. 我就用过BackWPup,一直挺好用,后来玩命升级,就停用了。不过那家伙免费的,也挺强大。
      其实到wordpress官网搜下,找个用的人多评分高的就行啦,重要的是适合自己。备份嘛,无非就是本地服务器备份,或者备份到amazon、dropbox或发邮件之类的,大部分备份插件都有这些功能。

      1. 哦,我也找了一下,比较满意的有你说的BackWPup和backupbuddy,这两个工具我都没有用过,我现在安装backupbuddy,不知道效果怎么样,有空再试试BACKWPUP看看那个好我就用那一款,谢谢

        1. 你用的是BackWPup 还是BackWPup PRO,它整站备份和还原方便吗,它有什么功能是别的插件没有的吗?

          1. BackWPup备份到amazon、dropbox的选项在哪里可以找到呢,找了很久找不到呢,那个backupbuddy上很容易就找到了,是不是BackWPup PRO版本才有呢?

        2. 还有关于你说的加速问题,我CDN如何设置这个官网有文档,只是我不太了解哪些CDN服务器好,所以帮不上忙。
          至于内部代码优化,这不是一句话就讲得明白的,要简单的说,就是这样:
          装缓存插件,比如wp super cache之类的
          用google pagespeed或者yslow去测试你站点得分,把里面得分低的项目一一修复,速度自然就快了,这个得分越高越好。
          装个测试内存使用率和执行速度的插件,看看哪些插件耗内存,哪些太耗时,把这些插件都替换掉。

          1. 好的谢谢,缓存插件我看了一下,memcached 这个应该是最好的,我先试试

      2. 在BackWPup 中的Job设置中的Job Destination也没有看到amazon、dropbox只有
        Backup to Folder
        Backup sent by e-mail
        Backup to FTP
        Backup to Microsoft Azure (Blob)
        这几个选项,不知道是什么原因,是不是版本的原因一定是PRO版的才支持呢,我现在用的是3.0.12版,如果不行的话那就用backupbuddy算了

        1. 备份插件那么多,你想用哪个就用哪个呗,那插件更新的太多了,好多东西都变的跟以前不一样了,所以我就不用了。用cpanel备份也挺省事的,云存储,我从来不用的。

  7. 不好意思,原来DISQUS支持图片和视频,这个真强大得去看看

    1. 那太好了,说实话disqus我真没用过,只知道友言多说之类的都是模范这个做的。

      1. 是的,友言之类的都是在查DISQUS后看到的

  8. Sola姐问一下。如何判断第N个评论?
    我想在第三个评论后添加一个自定义div,但始终没能成功,网上也搜了一大堆资料,好像没有相关的东西。请否给个煎蛋的代码提示,谢谢

    1. 这个问题你用js解决一下就行了吧?
      或者在wp_list_comments的用户自定义函数里写一个static变量记录是第几条评论,要区分是不是嵌套的评论可以用$depth变量

      1. 我想过用JS实现,但首先想能不能用WP自己的方法来搞定。我这个不用考虑嵌套评论,全是主评论曾,我只是想某个评论后,比如第三个评论后输出一个li,然后里面放自己的代码。这个很麻烦吗?

        1. js不算wp的东西么?
          js不行你就用我跟你说的第二种方法呗,如果不知道代码咋写去搜下评论楼层号的代码就行了。

  9. 基本上该加的我都加了呢。。就是模板还没解雇,头大!!!

      1. 是啊,其实我就想要个好看点全面点的,貌似只有国外的模板才好。但要么是付费的,要么太难搞。。模板弄好久了还没解决。
        博主有推荐的网站来找模板么?

        1. 我的模版要么自己做,要么直接买,我很少用免费模版,所以也不知道哪里有。

          我认为模版是为网站内容服务的,所以在找之前,应该先把自己的需求列清楚,功能需要有哪些,布局什么样,颜色偏好是什么。如果你的网站有logo,那根据logo颜色来选就很好。

          这些想明白,找模版就有的放矢了。国外模版设计比较出众,但在我看来很多收费主题都是针对某一领域,不是放哪都合适的。收费主题往往带有超出你需求的功能,而你真的想要的却没有。

          我认为应该根据自己的需求找一款最接近的主题。即使是收费的,网上也能免费下到,特别是像woo,themeforest的主题,到处都有下载资源。免费下来用也没问题,只是获得不了升级和技术支持罢了。

          总之模版好看不好看,它都是为网站内容服务的,不要喧宾夺主才好。

  10. 谢谢分享,刚开始装了Akismet还不会设置,谢谢博主

      1. Hey Sola, How is it going? is there any tools or App available for Iphone or Android’s phone that easy gets visitor’s comments instantly then reply by phone, and can we set it up via wordpress admin, Thx

        1. I don’t know much about this. But if it were me, I would try some third party WordPress comment systems like DISQUS and why English?

          1. SOLA,谢谢你建议,你的这个方案不错,但是我想再问一下,你有没有找到支持发图片和视频的评论插件呢,最近有学英文,看到你们上面写英文就乱来几句,不好意思了。谢谢

评论功能已关闭