Typecho 页面中调用最新评论/留言/回复

阅读约 3 分钟

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

  代码如下:

<?php $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

  agent:表示发表评论时的程序,一般是 Typecho 的版本信息,譬如 Typecho 1.2/22.04.01,如果是第三方评论插件,则可能是其他值

  text:评论的内容

  type:评论的类型,譬如 “comment”

  status:评论的状态,譬如 “approved”

  parent:评论的上级评论,一般回复某条评论时,此值非0

  created:评论发表的时间戳

  date:评论发表的时间,Typecho_Date 类型

Widget_Comments_Recent 可用参数

  pageSize 获取最新评论的数目,获取最新的 10 条评论代码如下:

<?php $this->widget('Widget_Comments_Recent','pageSize=10'); ?>

  ignoreAuthor 是否忽略博主评论,默认是 false。

<?php $this->widget('Widget_Comments_Recent','ignoreAuthor=true'); ?>

  pageSize 和 ignoreAuthor 同时使用:

<?php $this->widget('Widget_Comments_Recent','pageSize=10&ignoreAuthor=true'); ?>

Widget_Comments_Recent 常见用法

常规用法

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

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

快捷用法

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

<?php $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 while($recent->next()):?>
    ......
<?php endwhile;?>

改成:

<?php $this->widget('Widget_Comments_Recent','ignoreAuthor=true')->to($comments); ?>
<?php while($recent->next()):?>
    ......
<?php endwhile;?>

2.隐藏博主评论 & 引用条数

<?php $this->widget('Widget_Comments_Recent','pageSize=10&ignoreAuthor=true')->parse('<li><span style="padding:5px 15px;color:#f8f8f5">{author} :</span><a href="{permalink}">{text}</a><span style="float:right;"><small>{dateWord}</small></span></li><br/>'); ?>

  效果详见: https://www.80srz.com/comment.html 。参数及 CSS 样式可根据自己需要修改、增减。


 赏 
感谢您的支持,我会继续努力哒!
微信收款码
~~  The   End  ~~

文章二维码 本文标签:typecho, 主题模板, 工具代码
最后编辑:2022 年 5 月 8 日 16:53 By 荒野孤灯 —(致知在格物,格物而后知至)
本文链接:https://www.80srz.com/670.html(转载时请注明出处及链接! )
作品采用: 署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0) 许可协议授权。
1 + 5 =
共  3  评论:
    5月11日 贵州省贵阳市 回复

    这个好~

      5月11日 海南省三亚市 回复

      哪里好?

        5月16日 贵州省贵阳市 回复

        如果是两栏博客的话,可以选择放到右侧边栏,这样方便查看最新评论。
        使用场景还挺多的



篱落主机MySSL安全认证穿梭虫洞