首页 > CMS > Wordpress > 正文

wordpress实现文章和评论日期显示几分钟之前几小时之前

2024-09-07 00:50:25
字体:
来源:转载
供稿:网友

我们在很多网站都会看到此文章几天前发布或几分钟前发布,如果要wordpress实现这功能,我们只要在functions文件中加一个php处理代码即可,首先在主题的 functions.php 文件中加入以下代码:

  1. function timeago( $ptime ) { 
  2.     $ptime = strtotime($ptime); 
  3.     $etime = time() - $ptime
  4.     if ($etime < 1) return '刚刚'
  5.     $interval = array ( 
  6.     12 * 30 * 24 * 60 * 60 => '年前 ('.date('Y-m-d'$ptime).')'
  7.     30 * 24 * 60 * 60 => '个月前 ('.date('m-d'$ptime).')'
  8.     7 * 24 * 60 * 60 => '周前 ('.date('m-d'$ptime).')'
  9.     24 * 60 * 60 => '天前'
  10.     60 * 60 => '小时前'
  11.     60 => '分钟前'
  12.     1 => '秒前' 
  13.     ); 
  14.     foreach ($interval as $secs => $str) { 
  15.     $d = $etime / $secs
  16.     if ($d >= 1) { 
  17.     $r = round($d); 
  18.     return $r . $str
  19.     } 
  20.     }; 
  21.     } 

列表页和文章页面使用方法,适用于如下文件:

  1. index.php 
  2. search.php 
  3. tag.php 
  4. single.php 
  5. page.php 
  6. author.php 
  7. category.php 

在需要显示时间的地方替换成以下,注意需要放在?php代码块中,代码如下:

echo '发表于 '.timeago( get_gmt_from_date(get_the_time('Y-m-d G:i:s')) );

评论区域使用方法:在需要显示时间的地方替换成以下,注意需要放在评论循环内:

echo '发表于 '.timeago( $comment->comment_date_gmt );

其他:当然,你还可以更改函数中的文字以达到你自己的需求,此函数传值格式为“2013-11-11 11:11:11”,只要格式符合就行,但是wp有gmt时间制,所以才有了以上使用方式,后现再网上找了一个同样是加在functions.php文件中,显示新增文章的时间格式为“几分钟”前,代码如下:

  1. function timeago() { 
  2.     global $post
  3.     $date = $post->post_date; 
  4.     $time = get_post_time('G', true, $post); 
  5.     $time_diff = time() - $time
  6.     if ( $time_diff > 0 && $time_diff < 24*60*60 ) 
  7.         $display = sprintf( __('%s ago'), human_time_diff( $time ) ); 
  8.     else 
  9.         $display = date(get_option('date_format'), strtotime($date) ); 
  10.     return $display
  11. add_filter('the_time''timeago');//这个就是调用方法了 

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表