两步实现WordPress文章时间格式为几分钟前

2018年8月16日

我不知道是从什么时候开始流行把文章的发布时间改为几分钟前,以前我一直都没有想过这件事,直到前几天在逛社区的时候,发现它的每一个帖子的时间都显示为几分钟前、几个小时前,感觉看着特别和谐,所以就想到把这个时间格式也折腾进主题(,今天特意将这个过程分享出来。

第一步:在我们所使用主题的 222s.php 文件最后一个?>前中加入以下代码:

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

第二步:在需要显示时间的地方,把原先显示时间的代码(如:<?php the_time( ‘Y年n月j日’);?>)改为以下代码即可:

  1. <span title=“<?php the_time(‘Y年n月j日’);?>”>
  2.        <?php  echo timeago(get_gmt_from_date(get_the_time(‘Y-m-d G:i:s’))); ?>
  3. </span>

至此,我们已经成功实现将我们的文章发布时间的格式为几分钟前,不过个人建议不要把所有的文章时间格式都改为几分钟前,我们只需要重点修改博客布局的首页(index.php)和分类列表页(category.php)即可。

 

方法二:

默认格式代码

主题的 222s.php中添加

 222timeago($ptime){
$ptime=strtotime($ptime);
$etime=time()-$ptime;
if($etime<1)return'刚刚';
$interval=array(
12*30*24*60*60 => '年前 ('.date('Y-m-d',$ptime).')',
30*24*60*60 => '个月前 ('.date('m-d',$ptime).')',
7*24*60*60 => '周前 ('.date('m-d',$ptime).')',
24*60*60 => '天前',
60*60 => '小时前',
60 => '分钟前',
1 => '秒前'
);
foreach($interval as$secs=>$str){
$d=$etime/$secs;
if($d>=1){
$r=round($d);
return$r.$str;
}
};
}

列表页和文章页面使用方法:

适用于 index.php/search.php/tag.php/single.php/page.php/author.php/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”,只要格式符合就行.

修改的函数代码

在主题的 222s.php中添加上一版本相同内容,也可以不用添加。

然后再文章页指定位置添加调用:

<?phpthe_date('Y-m-d H:i l');?>

附录:WordPress的时间函数

文章的时间函数为:
<?phpthe_time()?>

评论的时间函数为:
<?phpcomment_date()?>

评论的日期函数为:
<?phpcomment_time()?>

一个典型的时间函数实例为以下代码:
<?phpthe_time(’FjS,Y’)?>
单引号内的代码即为时间参数。

WordPress的全部时间参数及显示效果

* a代表小写的英语的上下午,如am、pm

* A代表大写的英语的上下午,如AM、PM

* d代表英语的日期(小于10仍为两位数写法),如05、12

* D代表中文的星期,如五、七

* F代表中文的月份(包括“月”这个字),如五月、十二月

* g代表英语的小时(小于10为一位数写法),如5、12

* G代表英语的小时(小于10仍为两位数写法),如05、12

* h代表英语的分钟(小于10为一位数写法),如5、12

* H代表英语的分钟(小于10仍为两位数写法),如05、12

* j代表英语的日期(小于10为一位数写法),如08-02-09

* l代表中文的星期(包括“星期”这两个字),如星期五、星期七

* m代表英语的月份(小于10仍为两位数写法),如05、12

* M代表英语的月份(以单词的形式显示),如Jun

* n代表英语的月份(小于10为一位数写法),如5、12

* O代表英语的时区,如+0800

* r代表完整的日期时间,如Tue, 06 Jun 2006 18:37:11 +0800

* S代表日期的序数后缀,如st、th

* T代表英语的时区(以单词的形式显示),如CST

* w代表英语的星期,如5、7

* W代表周数,如23

* y代表两位数年份,如07、08

* Y代表四位数年份,如2007、2008

* z代表天数,如156

SEO知识

Posted by 网络营销