麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 網(wǎng)站 > 建站經(jīng)驗 > 正文

優(yōu)化WordPress中文章與評論的時間顯示

2024-04-25 20:43:56
字體:
供稿:網(wǎng)友

很多博客都喜歡用 評論發(fā)表于 “XXX 分鐘 之前”、文章發(fā)表于 “XXX 分鐘 之前”來顯示文章評論的時間,改善的時間顯示方式不僅能很直觀的告訴讀者這篇文章或評論發(fā)表距今已有多長時間,更能增強評論回復(fù)的時間感,哥很喜歡,因為前一陣子壓在手里的東西太多了,工作日白天又苦于不能上網(wǎng),所以主題的樣式及功能部分一點一點的寫拖了好長時間,最近這陣子剛好輪到折騰評論了,所以就逐步參照網(wǎng)上流行的樣式一點一點的修改起來自己的評論樣式和功能。

So…..

Go…..

交道麻袋…..評論日期和文章日期調(diào)用函數(shù)不同,下面以評論日期為例,文章日期請自行調(diào)整。

改善的時間顯示方式的原理

很簡單,就是通過 WordPress 的一個內(nèi)置的函數(shù)處理現(xiàn)在的時間和文章、評論發(fā)表的時間差,顯示距今有X分鐘、X小時、X天。

這個函數(shù)就是 human_time_diff ()

用法:

<?php human_time_diff( $from, $to ) ;?>

說明:

判斷兩個時間標(biāo)記的差異。

以人類可閱讀的格式,如“1小時”、“5分鐘”、“兩天”,返回$from和$to 兩個時間變量的時間差。

從英文上也很好理解:from 到 to 嘛。(這句是很廢吧,哈哈。)

雛形版改善實現(xiàn)

//將你的評論時間顯示的函數(shù)改成如下就可以了

<?php echo human_time_diff( get_comment_time('U') , current_time('timestamp')) ;?>

所有的日期都計算時間差,很暴力吧?

初級版的實現(xiàn)辦法

簡單的加一個判斷,如果評論時間沒有超過一天則顯示XX小時之前,如果超過一天則顯示原始日期。

這樣比較人性化吧?總不能讓讀者總掰著指頭算38天之前是什么日子吧?哈哈!

代碼:

<?php

//計算是否超過一天 注:86400是一天的總共的秒數(shù) 60秒X60分X24小時=86400秒

//如果覺得一天不夠的話,請自行計算填上。

if (current_time('timestamp') - get_comment_time('U') < 86400 )

//一天之內(nèi)顯示的東西

{$cmt_time = human_time_diff( get_comment_time('U') , current_time('timestamp') ) . '-ago';}

//超過一天這么顯示

else{$cmt_time = get_comment_date( 'Y/n/j' ).' - '.get_comment_time('','',false);};

;?>

//將你的評論時間顯示的函數(shù)改成如下就可以了

<?php echo $cmt_time ;?>

增強版

那么我們能不能再增強一下呢?

為什么增強?

好吧,因為我這個人比較較真,覺得中文顯示日期不好看,影響到我的排版,喜歡英文顯示日期,而中文版的 WordPress 漢化的真的是沒有死角(漢化的真仔細(xì)),如果我們直接用 human_time_diff 函數(shù)輸出的話,中文版的 WordPress 會將結(jié)果全部漢化顯示XX小時XX天之前,這樣很有可能會影響我們的排版,而且這個 human_time_diff 函數(shù)里既沒有留鉤子,也沒有預(yù)留一個不漢化的參數(shù),所以我們想要顯示英文的話,只有兩個辦法:

直接修改 human_time_diff 函數(shù),讓漢化失效,這樣做太暴力,而且以后升級了還要再進(jìn)去改,倫家不喜歡。

重寫一個自己的 human_time_diff 函數(shù),繞過漢化。

function.php 里面強力插入如下代碼:

//原函數(shù)的 day hour min 都是小寫的,

//我把這三個詞的首寫字母改成大寫的,即Day Hour Min 就可以避開漢化了,你懂?

if ( ! function_exists( 'xz_time_diff' ) ) :

function xz_time_diff( $from, $to = '' ) {

if ( empty($to) )

$to = time();

$diff = (int) abs($to - $from);

if ($diff <= 3600) {

$mins = round($diff / 60);

if ($mins <= 1) {

$mins = 1;

}

/* translators: min=minute */

$since = sprintf(_n('%s Min', '%s Mins', $mins), $mins);

} else if (($diff <= 86400) && ($diff > 3600)) {

$hours = round($diff / 3600);

if ($hours <= 1) {

$hours = 1;

}

$since = sprintf(_n('%s Hour', '%s Hours', $hours), $hours);

} elseif ($diff >= 86400) {

$days = round($diff / 86400);

if ($days <= 1) {

$days = 1;

}

$since = sprintf(_n('%s Day', '%s Days', $days), $days);

}

return $since;

}endif;

時間判斷代碼改為如下:

<?php

//只是把計算日期差異的函數(shù)名變了而已,其他同上。

if (current_time('timestamp') - get_comment_time('U') < 86400 )

{$cmt_time = xz_time_diff( get_comment_time('U') , current_time('timestamp') ) . '-ago';}

else{$cmt_time = get_comment_date( 'Y/n/j' ).' - '.get_comment_time('','',false);};

;?>

//將你的評論時間顯示的函數(shù)改成如下就可以了

<?php echo $cmt_time ;?>

顯示評論、文章相對時間

根據(jù)上面的版本、下面的這個應(yīng)該算是增強改進(jìn)版吧,因為要達(dá)到效果還是需要在主題里添加代碼,所以還沒到終極版,哈哈。

函數(shù)代碼如下:

相對時間函數(shù)

if ( ! function_exists( 'xz_time' ) ) :

/**

* 顯示文章、評論相對時間的封裝函數(shù).

*作者:XiangZi http://PangBu.com/

* @param $type 類型字符串 'cmt'或'art',用于定義顯示的是評論時間還是文章時間。

* @param $ago_time 數(shù)字類型 用于定義顯示相對時間的時間限制 默認(rèn)為86400秒即一天。

* @param $after 字符串型 顯示在相對時間之后的文字,默認(rèn)為 ' - ago'

* @param $late 字符串型 超過時間限制后顯示的項目,默認(rèn)為 get_the_time('Y/n/j - H:i')或get_comment_time('Y/n/j - H:i')

* @return 返回字符串(相對時間或絕對時間)

*/

function xz_time ( $type = 'art', $ago_time = 86400 ,$after = ' - ago' , $late = '' ) {

if ( $type === 'cmt' ){

$diff = (int) abs( get_comment_time('U') - current_time('timestamp'));

if ( (!$late) || $late ==''){ $late = get_comment_time('Y/n/j - H:i');};

}

if ( $type === 'art' ){

$diff = (int) abs( get_the_time('U') - current_time('timestamp'));

if ( (!$late) || $late ==''){$late = get_the_time('Y/n/j - H:i');};

}

if ( $diff <= 3600 ) {

$mins = round($diff / 60);

if ($mins <= 1) {

$mins = 1;

}

/* translators: min=minute */

$since = sprintf(_n('%s Min', '%s Mins', $mins), $mins);

} else if (($diff <= 86400) && ($diff > 3600)) {

$hours = round($diff / 3600);

if ($hours <= 1) {

$hours = 1;

}

$since = sprintf(_n('%s Hour', '%s Hours', $hours), $hours);

} elseif ($diff >= 86400) {

$days = round($diff / 86400);

if ($days <= 1) {

$days = 1;

}
$since = sprintf(_n('%s Day', '%s Days', $days), $days);

};

$since .= $after ;

return $diff < $ago_time ? $since : $late ;

}endif;

使用方法

將上述代碼插入到你主題的function.php文件中

然后在你想顯示相對時間的地方調(diào)用該函數(shù)即可。

函數(shù)最少輸入設(shè)定一個參數(shù) 即$type 類型字符串 ‘cmt'(評論時間)或'art'(文章時間)

示例:

//最簡單的調(diào)用

echo xz_time('cmt');

//一天內(nèi)的輸出結(jié)果: 3 Hours-ago

//一天后的輸出結(jié)果: 2015/12/26 - 20:01

//調(diào)用時長為2天內(nèi)的相對時間,之前時間顯示默認(rèn)時間

echo xz_time('cmt',172800);

//2天內(nèi)的輸出結(jié)果: 3 Hours-ago

//2天后的輸出結(jié)果: 2015/12/26 - 20:01

//調(diào)用時長為2天內(nèi)的相對時間,相對時間之后顯示 '之前的評論'

echo xz_time('cmt',172800,'之前的評論');

//2天內(nèi)的輸出結(jié)果: 3 Hours 之前的評論

//2天后的輸出結(jié)果: 2015/12/26 - 20:01

//調(diào)用時長為2天內(nèi)的相對時間,之前時間顯示為 年-月-日

echo xz_time('cmt',172800,'之前的評論',get_comment_time('Y-n-j'));

//2天內(nèi)的輸出結(jié)果: 3 Hours 之前的評論

//2天后的輸出結(jié)果: 2015/12/26

以上就是本文章的內(nèi)容,希望對大家有所幫助

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 狠狠一区| 精品一区二区电影 | 国产精品美女一区二区 | 天天色狠狠干 | 久草免费资源视频 | 在线观看免费毛片视频 | 久久精品无码一区二区三区 | 成人一区二区三区在线 | 欧美日韩国产成人在线观看 | av在线播放网址 | 久久久久久久99 | 色综合一区二区 | 免费观看一级黄色片 | 91精品国| 日韩精品中文字幕一区 | 国产精品av久久久久久网址 | 性生活视频一级 | 日本a在线观看 | 欧美精品成人一区二区在线观看 | av免费不卡国产观看 | 91精品国产91久久久久久蜜臀 | 精品一区二区三区免费毛片 | 美女久久久久久久久 | 免费毛片在线 | 久久亚洲精品久久国产一区二区 | 日本在线播放一区二区三区 | 久久综合一区二区 | 久久久久久久久国产 | 久久久婷婷一区二区三区不卡 | 亚洲国产精品一 | 欧美电影在线观看 | 麻豆19禁国产青草精品 | 女教师~淫辱の动漫在线 | 欧美日韩一区三区 | 久久久一区二区三区精品 | xxxxhd86日本护士hd | 久久欧美亚洲另类专区91大神 | 粉嫩蜜桃麻豆免费大片 | 午夜精品久久久久久久99热浪潮 | 黄色毛片视频在线观看 | 国产亚洲精品久久久久久大师 |