Typecho 调用最新评论

有时,为了提高PV,或者吸引蜘蛛,一般博客都会在侧边栏中加入“最新评论”或“最近回复”列表。此功能主要通过typecho内置的Widget_Comments_Recent组件提供。。

$obj = $this->widget('Widget_Comments_Recent');
if($obj->have()){
    while($obj->next()){
        $obj->text();
        ... ...
    }
}else{
    echo '无最新回复';
}

comments可用字段

  • coid:评论id
  • cid:评论所属文章的id
  • author:作者名称,未登录时在发表评论时填写
  • mail:作者邮箱,未登录时在发表评论时填写
  • url:作者个人主页,未登录时在发表评论时填写
  • ip:作者发表的ip
  • authorId:Typecho用户的用户id
  • ownerId:
  • agent:表示发表评论时的程序,一般是Typecho的版本信息,譬如Typecho 1.0/14.10.10,如果是第三方评论插件,则可能是其他值
  • text:评论的内容
  • type:评论的类型,譬如“comment”
  • status:评论的状态,譬如“approved”
  • parent:评论的上级评论,一般回复某条评论时,此值非0
  • created:评论发表的时间戳
  • date:评论发表的时间,Typecho_Date类型
Widget_Comments_Recent可用参数
  • pageSize 获取最新评论的数目。
    $this->widget('Widget_Comments_Recent','pageSize=10')则获取最新的10条评论
  • ignoreAuthor 是否忽略博主评论,默认是false。
Widget_Comments_Recent常见用法

常规用法

传统的,通过widget方法初始化组件,并使用next()进行迭代。此方法是最传统的widget使用方法,但弊端是代码冗长。

$this->widget('Widget_Comments_Recent')->to($recent);
while($recent->next()):
    ......
endwhile;

快捷用法

通过Widget的parse方法,可以极大简化上述代码:

$this->widget('Widget_Comments_Recent')->parse('<a href="{permalink}">{text}</a>');

至于有哪些字段可用,请参考上文。

Widget_Comments_Recent常用代码

1.隐藏博主评论
在侧栏的最近评论列表中显示博主的最近评论没太大必要,如果博主评论多了,反而会影响PV,甚至部分博主压根就不想在最新评论列表中显示自己的评论回复。见上文,使用ignoreAuthor参数即可达到隐藏博主评论的目的。具体方法很简单

找到模板文章中,一般是sidebar.php中,找到调用最近回复的代码:

<?php $this->widget('Widget_Comments_Recent')->to($comments); ?>

改成:
widget('Widget_Comments_Recent','ignoreAuthor=true')->to($comments); ?>

2.使用快捷键Ctrl-D实现快速回复
//TODO 待补全描述

3.使用第三方社会化评论组件
第三方评论组件,推荐的有多说、友言等。各个大侠自行摸索吧,一般官方网站上都会有手把手教程。