1. 程式人生 > >如何實現WordPress文章釋出時間顯示為“幾小時”前?

如何實現WordPress文章釋出時間顯示為“幾小時”前?

由於從事碼程式碼的工作,已經習慣於晚上到茶話匯這裡寫文章,經常會出現在晚上23點XX分提交發布文章,但過了第二天很多讀者來到這一看,釋出時間是頭一天的文章才這麼點閱讀量。。。

出於在乎那點閱讀量的“虛榮”,也可以說是為了給讀者更好的體驗,所以就打算將文章列表裡所看到的文章釋出時間調整為“釋出於XX小時”前,在網上查了下基於Wordpress實現的方法,現在在茶話匯已經用上了,大家也就別動不動就想著用外掛,自己研究下不難的,在這裡把程式碼分享給大家,有興趣的可以參考下。可以簡單修改引數“定製對多少小時內的文章”才按照該規則顯示……

1. 首先將下面的程式碼寫入到你的WP模版的functions.php檔案中。

[code lang=”php”]function time_since($older_date, $newer_date = false)
{
$chunks = array(
array(60 * 60 * 24 * 365 , ‘年’),
array(60 * 60 * 24 * 30 , ‘月’),
array(60 * 60 * 24 * 7, ‘周’),
array(60 * 60 * 24 , ‘天’),
array(60 * 60 , ‘小時’),
array(60 , ‘分鐘’),
);

$newer_date = ($newer_date == false) ? (time()+(60*60*get_settings("gmt_offset"))) : $newer_date;
$since = $newer_date – abs(strtotime($older_date));

//根據自己的需要調整時間段,下面的24則表示小時,根據需要調整吧
if($since < 60 * 60 * 24){
for ($i = 0, $j = count($chunks); $i < $j; $i++)
{
$seconds = $chunks[$i][0];
$name = $chunks[$i][1];

if (($count = floor($since / $seconds)) != 0)
{
break;
}
}

$out = ($count == 1) ? ‘1 ‘.$name : "$count {$name}";
return $out." 前";
}else{
the_time(get_option(‘date_format’));
}
}[/code]

2. 在需要呼叫時間的地方使用下面方式呼叫。

例如:顯示為“發表於 XX小時前”則在對應的index.php, single.php之類的檔案中修改為以下程式碼即可:
[code lang=”php”]發表於 <?php echo time_since($post->post_date);?>[/code]

完畢,大家拿去搗鼓吧~