亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 網站 > 建站經驗 > 正文

優化WordPress中文章與評論的時間顯示

2024-04-25 20:43:56
字體:
來源:轉載
供稿:網友

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

So…..

Go…..

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

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

很簡單,就是通過 WordPress 的一個內置的函數處理現在的時間和文章、評論發表的時間差,顯示距今有X分鐘、X小時、X天。

這個函數就是 human_time_diff ()

用法:

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

說明:

判斷兩個時間標記的差異。

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

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

雛形版改善實現

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

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

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

初級版的實現辦法

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

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

代碼:

<?php

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

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

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

//一天之內顯示的東西

{$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);};

;?>

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

<?php echo $cmt_time ;?>

增強版

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

為什么增強?

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

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

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

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

//原函數的 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

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

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);};

;?>

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

<?php echo $cmt_time ;?>

顯示評論、文章相對時間

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

函數代碼如下:

相對時間函數

if ( ! function_exists( 'xz_time' ) ) :

/**

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

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

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

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

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

* @param $late 字符串型 超過時間限制后顯示的項目,默認為 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文件中

然后在你想顯示相對時間的地方調用該函數即可。

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

示例:

//最簡單的調用

echo xz_time('cmt');

//一天內的輸出結果: 3 Hours-ago

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

//調用時長為2天內的相對時間,之前時間顯示默認時間

echo xz_time('cmt',172800);

//2天內的輸出結果: 3 Hours-ago

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

//調用時長為2天內的相對時間,相對時間之后顯示 '之前的評論'

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

//2天內的輸出結果: 3 Hours 之前的評論

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

//調用時長為2天內的相對時間,之前時間顯示為 年-月-日

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

//2天內的輸出結果: 3 Hours 之前的評論

//2天后的輸出結果: 2015/12/26

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产精品亚洲аv天堂网| 欧美电影免费在线观看| 欧美成人精品在线观看| 成人激情在线播放| 久久精品影视伊人网| 国产99久久精品一区二区| 欧美日本亚洲视频| 在线播放日韩专区| 亚洲成人激情图| 久久久日本电影| 韩剧1988在线观看免费完整版| 亚洲电影成人av99爱色| 蜜月aⅴ免费一区二区三区| 一区二区亚洲欧洲国产日韩| 中文字幕亚洲欧美日韩2019| 亚洲精品第一国产综合精品| 精品久久久久久久久久久久| 韩曰欧美视频免费观看| 国产精品久久久久久av福利软件| 欧美视频专区一二在线观看| 久久福利视频导航| 国产成人福利网站| 777午夜精品福利在线观看| 国内精品久久久久| 91精品中国老女人| 国产精品自产拍在线观| 欧美精品电影在线| 亚洲精品天天看| 国产精品久久久久久久9999| 热re99久久精品国产66热| 亚洲国产欧美自拍| 国产精品视频自在线| 亚洲欧美日韩国产中文专区| 久国内精品在线| 欧美成人在线免费| 日韩二区三区在线| 亚洲国产欧美精品| 久久人人爽人人爽人人片av高请| 亚洲香蕉成人av网站在线观看| 97在线精品国自产拍中文| 国产香蕉一区二区三区在线视频| 成人免费视频网址| 九九热视频这里只有精品| 538国产精品一区二区免费视频| 国产精品日韩在线| 清纯唯美日韩制服另类| 日韩欧美第一页| 国产欧美在线视频| 国产精品久久久999| 精品久久久久久久久久ntr影视| 国产一区二区三区四区福利| 久久久99免费视频| 日韩精品免费综合视频在线播放| 精品综合久久久久久97| 永久免费毛片在线播放不卡| 日韩中文字在线| 久久久噜噜噜久噜久久| 国产欧美一区二区三区久久人妖| 久久精品色欧美aⅴ一区二区| 欧美裸体视频网站| 精品久久久久久中文字幕大豆网| 国产美女精彩久久| 97成人在线视频| 欧美精品videofree1080p| 国产一区视频在线播放| 久久男人资源视频| 亚洲第一二三四五区| 欧美性生交大片免网| 精品亚洲一区二区三区在线播放| 97在线视频免费观看| 亚洲人成网站在线播| 68精品国产免费久久久久久婷婷| 亚洲国产精品va在线看黑人| 日韩国产欧美精品在线| xxxx性欧美| 中文字幕亚洲一区二区三区| 久久久精品国产| 久久久av网站| 国产亚洲精品激情久久| 日韩欧美一区二区三区| 欧美色另类天堂2015| 欧美寡妇偷汉性猛交| 亚洲大胆人体av| 91av网站在线播放| 91久热免费在线视频| 欧美成人三级视频网站| 久久久久国产精品www| 亚洲在线观看视频网站| 国产裸体写真av一区二区| 这里只有精品丝袜| 国产精品爽爽爽爽爽爽在线观看| 亚洲国产毛片完整版| 国产精品第2页| 亚洲亚裔videos黑人hd| 久久久久久久久国产精品| 国产情人节一区| 在线看片第一页欧美| 日韩av在线免播放器| 欧美精品在线极品| 自拍偷拍免费精品| 国产成人精品在线| 国产精品视频一区二区三区四| 亚洲国产99精品国自产| 91av在线精品| 日韩欧美在线网址| 国产亚洲欧洲在线| 北条麻妃在线一区二区| 美日韩精品免费视频| 欧美性猛交xxx| 久久久亚洲福利精品午夜| 亚洲在线观看视频网站| 国产成人精品午夜| 国产精品ⅴa在线观看h| 久久精品精品电影网| 69久久夜色精品国产7777| 亚洲国产精彩中文乱码av在线播放| 久久久久久久色| 日韩精品在线观| 国产91精品久久久久| 91丨九色丨国产在线| 欧洲美女7788成人免费视频| 亚洲经典中文字幕| 国产亚洲激情视频在线| 精品国产91乱高清在线观看| 77777少妇光屁股久久一区| 性日韩欧美在线视频| 日韩av在线网| 亚洲成人动漫在线播放| 91在线中文字幕| 欧美体内谢she精2性欧美| 2019中文在线观看| 亚洲欧美一区二区精品久久久| 在线观看日韩www视频免费| 精品亚洲精品福利线在观看| 91亚洲精品久久久| 久久久999精品| 国产精品夜间视频香蕉| 亚洲福利在线视频| 国产亚洲精品成人av久久ww| 亚洲91精品在线观看| 久久亚洲精品一区| 日本欧美国产在线| 黑人巨大精品欧美一区二区免费| 国产精品成人免费电影| 91午夜理伦私人影院| 日本精品免费一区二区三区| 亚洲精品短视频| 尤物九九久久国产精品的特点| 97精品国产97久久久久久| 日韩精品一区二区视频| 久久久91精品| 国产在线视频一区| 国产精品专区第二| 色偷偷噜噜噜亚洲男人的天堂| 国产视频丨精品|在线观看| 亚洲v日韩v综合v精品v| 亚洲成色777777在线观看影院| www.欧美精品一二三区| 伊人久久免费视频| 欧美俄罗斯性视频| 欧美激情国内偷拍| 国产精品视频一区国模私拍| 日韩美女免费视频| 亚洲精品中文字幕有码专区|