wordpress无插件实现文章发布时间显格式为几分钟之前几小时之前

发布时间:

wordpress无插件实现文章发布时间显格式为几分钟之前几小时之前

实现如图的效果,将文章发布时间由XX年XX月XX日改为多久之前,这样用户体验会更棒,那怎么做到呢?看下面的代码。

修改文章发布时间调用函数

WordPress 本身调用时间的函数 the_time() 只能直接调用时间,通过他的 filter,我们可以让他显示为比较科学的几天前格式。

当然,具体的时间组成格式可参考下面这篇文章:

WordPress时间日期函数(最全最正确版):The_time()与Get_the_time()

先将下边的代码放到 function.php 的最后一个 ?> 前

  1. function dayu_filter_time(){
  2.     global $post ;
  3.     $to = time();
  4.     $from = get_the_time('U') ;
  5.     $diff = (int) abs($to - $from);
  6.     if ($diff <= 3600) {
  7.         $mins = round($diff / 60);
  8.         if ($mins <= 1) {
  9.             $mins = 1;
  10.         }
  11.         $time = sprintf(_n('%s 分钟', '%s 分钟', $mins), $mins) . __( '前' , 'Bing' );
  12.     }
  13.     else if (($diff <= 86400) && ($diff > 3600)) {
  14.         $hours = round($diff / 3600);
  15.         if ($hours <= 1) {
  16.             $hours = 1;
  17.         }
  18.         $time = sprintf(_n('%s 小时', '%s 小时', $hours), $hours) . __( '前' , 'Bing' );
  19.     }
  20.     elseif ($diff >= 86400) {
  21.         $days = round($diff / 86400);
  22.         if ($days <= 1) {
  23.             $days = 1;
  24.             $time = sprintf(_n('%s 天', '%s 天', $days), $days) . __( '前' , 'Bing' );
  25.         }
  26.         elseif$days > 29){
  27.             $time = get_the_time(get_option('date_format'));
  28.         }
  29.         else{
  30.             $time = sprintf(_n('%s 天', '%s 天', $days), $days) . __( '前' , 'Bing' );
  31.         }
  32.     }
  33.     return $time;
  34. }
  35. add_filter('the_time','dayu_filter_time');

这样你在去使用the_time()调用一下时间,看看效果吧。

注意:上边的代码可以让 30 天内发布的文章显示为几天前,而过了 30 天即显示为正常的标准格式日期。

本文来自 大鱼模板网

转载标注此链接:http://www.dayumoban.com/faq/wpjz/15572018.html

留个言呗

您必须 [ 登录 ] 才能发表留言!