首页 » 建站技术 » WordPress » 浏览内容

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


2011-01-13 20:47:34 2,986 0 发表评论 字体: 作者:C.K.
标签: phpWordPress代码备忘

体验版 88 元,个人版 128 元,多用户版 288元个人版160元升级到多用户版。

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

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

function time_diff( $time_type ){
  •     switch( $time_type ){
  •         case 'comment':    //如果是评论的时间
  •             $time_diff = current_time('timestamp') - get_comment_time('U');
  •             if( $time_diff <= 86400 )    //24 小时之内
  •                 echo human_time_diff(get_comment_time('U'), current_time('timestamp')).' 之前';    //显示格式 OOXX 之前
  •             else
  •                 printf(__('%1$s at %2$s'), get_comment_date(),  get_comment_time());    //显示格式 X年X月X日 OOXX 时
  •             break;
  •         case 'post';    //如果是日志的时间
  •             $time_diff = current_time('timestamp') - get_the_time('U');
  •             if( $time_diff <= 86400 )
  •                 echo human_time_diff(get_the_time('U'), current_time('timestamp'));
  •             else
  •                 the_time('Y.m.d');
  •             break;
  •     }
  • }

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

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

    把它替换成:

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

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

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

    然后把它替换成:

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

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

      网站统计 Statistics

      • 创建时间: 2005年1月3日 距今4761 天
      • 日志总数: 2461
      • 评论总数: 630
      • 标签总数: 654
      • 链接总数: 273
      • 最后更新: 2017-7-1 18:16:33
      • 您是本站第 13193845 位访客

      广告区 Guǎng Gào