显示WordPress 日志与评论的相对时间

林继 WordPress 3,431 共写了675个字 (2011-01-13 20:47:34) 没有评论 打印 扫描二维码 百度未收录

先简单介绍一下最终效果,什么是 WordPress 的相对时间?也就是发布的时间显示格式是 ** 分钟 之前这样的,但是我觉得24小时之内的文章和评论的时间可以用这种相对的显示格式,如果我两年前的一篇文章也显示 “750 天之前”这样,难道还要让用户做时间转换练习吗?所以,我让24小时以外的文章和评论时间保持原有的年月日格式。下面是具体代码:

先在 WordPress 主题的 functions.php 中插入如下函数:

  1. function time_diff( $time_type ){
  2.     switch( $time_type ){
  3.         case 'comment':    //如果是评论的时间
  4.             $time_diff = current_time('timestamp') - get_comment_time('U');
  5.             if( $time_diff <= 86400 )    //24 小时之内
  6.                 echo human_time_diff(get_comment_time('U'), current_time('timestamp')).' 之前';    //显示格式 OOXX 之前
  7.             else
  8.                 printf(__('%1$s at %2$s'), get_comment_date(),  get_comment_time());    //显示格式 X年X月X日 OOXX 时
  9.             break;
  10.         case 'post';    //如果是日志的时间
  11.             $time_diff = current_time('timestamp') - get_the_time('U');
  12.             if( $time_diff <= 86400 )
  13.                 echo human_time_diff(get_the_time('U'), current_time('timestamp'));
  14.             else
  15.                 the_time('Y.m.d');
  16.             break;
  17.     }
  18. }


然后,我们先改评论部分的时间,找到主题中评论时间的函数,一般不是在 functions.php 里评论回调函数中,就是直接写在 comments.php 里了,当然也不排除非常规主题,比如说我的评论时间就藏在某个只有我自己能发现的角落里。不管这么多,总之是找到下面类似的函数:

  1. <?php printf(__('%1$s at %2$s'), get_comment_date(),  get_comment_time());?>

把它替换成:

  1. <?php time_diff( $time_type = 'comment' ); ?>

同理,我们再来修改日志发布时间的相对格式,一般在 WordPress 主题的 single.php 和 index.php 都会有时间函数,在其中找到如下函数:

  1. <?php the_time('Y.m.d');?>

然后把它替换成:

  1. <?php time_diff( $time_type = 'post' ); ?>

大功告成了,效果可以见本站的日志发布时间和评论时间,快快留下你的评论来体验一下吧。
本文来自:http://wange.im/wordpress-time-diff-in-posts-and-comments.html

如果觉得我的文章对您有用,请随意赞赏。您的支持将鼓励我继续创作!

发表评论

电子邮件地址不会被公开。 必填项已用*标注

< >