对于一周更新数篇文章的站长来说,更友好的显示时间很有必要。通常我们会在微博上看到发布于1分钟前、1个小时前等字样,这样的显示对用户来说很贴心,传递给用户的感觉是这个站点一直活跃着,所以Wordpress站点也应该有这样的实用技巧。
首先在主题的 functions.php 文件中加入以下代码:
function timeago( $ptime ) {
$ptime = strtotime($ptime);
$etime = time() - $ptime;
if ($etime <1) return &#39;刚刚&#39;;
$interval &#61; array (
12 * 30 * 24 * 60 * 60 &#61;> &#39;年前 (&#39;.date(&#39;Y-m-d&#39;, $ptime).&#39;)&#39;,
30 * 24 * 60 * 60 &#61;> &#39;个月前 (&#39;.date(&#39;m-d&#39;, $ptime).&#39;)&#39;,
7 * 24 * 60 * 60 &#61;> &#39;周前 (&#39;.date(&#39;m-d&#39;, $ptime).&#39;)&#39;,
24 * 60 * 60 &#61;> &#39;天前&#39;,
60 * 60 &#61;> &#39;小时前&#39;,
60 &#61;> &#39;分钟前&#39;,
1 &#61;> &#39;秒前&#39;
);
foreach ($interval as $secs &#61;> $str) {
$d &#61; $etime / $secs;
if ($d >&#61; 1) {
$r &#61; round($d);
return $r . $str;
}
};
}
列表页和文章页面使用方法&#xff1a;
适用于 index.php/search.php/tag.php/single.php/page.php/author.php/category.php
在需要显示时间的地方替换成以下&#xff0c;注意需要放在?php代码块中&#xff1a;
echo &#39;发表于 &#39;.timeago( get_gmt_from_date(get_the_time(&#39;Y-m-d G:i:s&#39;)) );
评论区域使用方法&#xff1a;
在需要显示时间的地方替换成以下&#xff0c;注意需要放在评论循环内&#xff1a;
echo &#39;发表于 &#39;.timeago( $comment->comment_date_gmt );
其他
当然&#xff0c;你还可以更改函数中的文字以达到你自己的需求。
此函数传值格式为“2013-11-11 11:11:11”&#xff0c;只要格式符合就行&#xff0c;但是wp有gmt时间制&#xff0c;所以才有了以上使用方式。