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); ?>
改成:
<?php $this->widget('Widget_Comments_Recent','ignoreAuthor=true')->to($comments); ?>
2.使用快捷键Ctrl-D实现快速回复
//TODO 待补全描述
3.使用第三方社会化评论组件
第三方评论组件,推荐的有多说、友言等。各个大侠自行摸索吧,一般官方网站上都会有手把手教程。