又是一篇在 Typecho 下写的日志,哈哈。

这次呢,分享两个小技巧,都是正对程序侧栏的最新评论这个模块的技巧,分别是改变显示样式和忽略博主评论,下面开始分享。

改变显示样式

默认主题的显示样式很简单,“昵称:内容”,而我自己呢却不喜欢把内容直接显示出来,一个是因为评论太长了,二一个也许会把HTML代码给输出来。所以还是比较喜欢“昵称 在 《XXOO》 评论”,这样的话整齐美观,呵呵。代码如下:

<div class="widget">
  <h3>
    <?php _e('最新评论丨Recent Comments'); ?>
  </h3>
  <ul>
    <?php $this->widget('Widget_Comments_Recent')->to($comments); ?>
    <?php while($comments->next()): ?>
    <li>
      <?php $comments->author(true); ?> 在 
      <a title="<?php $comments->excerpt(26, '...'); ?>" href="<?php $comments->permalink(); ?>"><?php $comments->title(); ?></a> 评论
    </li>
    <?php endwhile; ?>
  </ul>
</div>

整体基本是默认的,改变的地方只有 li 标签中,下面看看这些函数的详细解释。

  • <?php $comments->author(true); ?>//输出评论人昵称,参数true为带链接的,false为不带链接的;
    //ps.其实还有一个参数,类型也是布尔,作用是是否带noFollow
  • <?php $comments->excerpt(26, '...'); ?>//输出评论摘要,第一个参数是要截取的长度,第二个是截取后的字符串;
  • <?php $comments->permalink(); ?>//获取当前评论链接,木有参数;
  • <?php $comments->title(); ?>//获取当前评论标题,同样木有参数;
  • <?php $comments->dateWord(); ?>//输出词义化日期,就是输出“3小时前”、“三天前”之内的;
  • <?php $comments->gravatar(); ?>//调用gravatar输出用户头像,有两个参数,第一个是头像尺寸,默认是32,第二个是默认输出的头像。

目前就只觉得这些有用,当然,这个类里面还有其他的方法,比如获得描点等,方法告诉大家了,剩下的样式设计就自己折腾吧。

忽略博主评论

一开始折腾侧栏评论的时候就注意到了这个问题,我不回复别人的评论还好,一回复的话基本侧栏就是我在刷屏了,这样很不地道,完全是最新评论的垄断行为。所以嘛,就要把自己的评论给忽略掉,怎么做呢?网上找了半天找不到,后来在评论类中发现那个输出的方法其实是有一个参数是来控制是否忽略作者评论的,可是我在侧栏的页面中不会传参数进去,因为没见过这种写法。后来 @飞天舞 童鞋给了我一个修改方法,但是是要修改源代码的,所以没有采纳。慢慢的折腾,参考其他的调用,看看有没有类似这种写法的,而且又能传参数的,不过还真让我找到了,是个关于tag的函数,写法和这个一样,所以,不用修改源代码的忽略方法诞生了。

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

侧栏文件中找到这段话,然后加上一个参数就OK了,默认的参数值是false,改为true,一切OK。