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

首頁 > CMS > Wordpress > 正文

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

2024-09-07 00:40:18
字體:
來源:轉載
供稿:網友

這篇文章主要介紹了優化WordPress中文章與評論的時間顯示的方法,文中講解了設置相對時間內顯示xxx時間以前及相對時間外顯示具體時間的方法,需要的朋友可以參考下

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

So…..

Go…..

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

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

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

這個函數就是 human_time_diff ()

用法:

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

說明:

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

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

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

雛形版改善實現

  1. //將你的評論時間顯示的函數改成如下就可以了 
  2. <?php echo human_time_diff( get_comment_time('U') , current_time('timestamp')) ;?> 

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

初級版的實現辦法

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

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

代碼:

  1. <?php  
  2. //計算是否超過一天 注:86400是一天的總共的秒數 60秒X60分X24小時=86400秒 
  3. //如果覺得一天不夠的話,請自行計算填上。 
  4. if (current_time('timestamp') - get_comment_time('U') < 86400 ) 
  5. //一天之內顯示的東西 
  6. {$cmt_time = human_time_diff( get_comment_time('U') , current_time('timestamp') ) . '-ago';} 
  7. //超過一天這么顯示 
  8. else{$cmt_time = get_comment_date( 'Y/n/j' ).' - '.get_comment_time('','',false);}; 
  9.  ;?> 

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

<?php echo $cmt_time ;?>

增強版

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

為什么增強?

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

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

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

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

  1. //原函數的 day hour min 都是小寫的, 
  2. //我把這三個詞的首寫字母改成大寫的,即Day Hour Min 就可以避開漢化了,你懂? 
  3. if ( ! function_exists( 'xz_time_diff' ) ) : 
  4. function xz_time_diff( $from$to = '' ) { 
  5.  if ( emptyempty($to) ) 
  6.  $to = time(); 
  7.  $diff = (int) abs($to - $from); 
  8.  if ($diff <= 3600) { 
  9.  $mins = round($diff / 60); 
  10.  if ($mins <= 1) { 
  11.   $mins = 1; 
  12.  } 
  13.  /* translators: min=minute */ 
  14.  $since = sprintf(_n('%s Min''%s Mins'$mins), $mins); 
  15.  } else if (($diff <= 86400) && ($diff > 3600)) { 
  16.  $hours = round($diff / 3600); 
  17.  if ($hours <= 1) { 
  18.   $hours = 1; 
  19.  } 
  20.  $since = sprintf(_n('%s Hour''%s Hours'$hours), $hours); 
  21.  } elseif ($diff >= 86400) { 
  22.  $days = round($diff / 86400); 
  23.  if ($days <= 1) { 
  24.   $days = 1; 
  25.  } 
  26.  $since = sprintf(_n('%s Day''%s Days'$days), $days); 
  27.  } 
  28.  return $since
  29. }endif

時間判斷代碼改為如下:

  1. <?php  
  2. //只是把計算日期差異的函數名變了而已,其他同上。 
  3. if (current_time('timestamp') - get_comment_time('U') < 86400 ) 
  4. {$cmt_time = xz_time_diff( get_comment_time('U') , current_time('timestamp') ) . '-ago';} 
  5. else{$cmt_time = get_comment_date( 'Y/n/j' ).' - '.get_comment_time('','',false);}; 
  6.  ;?> 

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

<?php echo $cmt_time ;?>

顯示評論、文章相對時間

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

函數代碼如下:

相對時間函數

  1. if ( ! function_exists( 'xz_time' ) ) : 
  2. /** 
  3.  * 顯示文章、評論相對時間的封裝函數. 
  4.  *作者:XiangZi http://PangBu.com/ 
  5.  * @param $type 類型字符串 'cmt'或'art',用于定義顯示的是評論時間還是文章時間。 
  6.  * @param $ago_time 數字類型 用于定義顯示相對時間的時間限制 默認為86400秒即一天。 
  7.  * @param $after 字符串型 顯示在相對時間之后的文字,默認為 ' - ago' 
  8.  * @param $late 字符串型 超過時間限制后顯示的項目,默認為 get_the_time('Y/n/j - H:i')或get_comment_time('Y/n/j - H:i') 
  9.  * @return 返回字符串(相對時間或絕對時間) 
  10. */ 
  11. function xz_time ( $type = 'art'$ago_time = 86400 ,$after = ' - ago' , $late = '' ) { 
  12.   if ( $type === 'cmt' ){ 
  13.     $diff = (int) abs( get_comment_time('U') - current_time('timestamp')); 
  14.       if ( (!$late) || $late ==''){ $late = get_comment_time('Y/n/j - H:i');}; 
  15.   } 
  16.   if ( $type === 'art' ){ 
  17.     $diff = (int) abs( get_the_time('U') - current_time('timestamp')); 
  18.     if ( (!$late) || $late ==''){$late = get_the_time('Y/n/j - H:i');}; 
  19.   } 
  20.   if ( $diff <= 3600 ) { 
  21.     $mins = round($diff / 60); 
  22.     if ($mins <= 1) { 
  23.       $mins = 1; 
  24.     } 
  25.     /* translators: min=minute */ 
  26.     $since = sprintf(_n('%s Min''%s Mins'$mins), $mins); 
  27.   } else if (($diff <= 86400) && ($diff > 3600)) { 
  28.     $hours = round($diff / 3600); 
  29.     if ($hours <= 1) { 
  30.       $hours = 1; 
  31.     } 
  32.     $since = sprintf(_n('%s Hour''%s Hours'$hours), $hours); 
  33.   } elseif ($diff >= 86400) { 
  34.     $days = round($diff / 86400); 
  35.     if ($days <= 1) { 
  36.       $days = 1; 
  37.     } 
  38.     $since = sprintf(_n('%s Day''%s Days'$days), $days); 
  39.   }; 
  40.   $since .= $after ;  
  41.   return $diff < $ago_time ? $since : $late ; 
  42. }endif

使用方法

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

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

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

示例:

  1. //最簡單的調用 
  2. echo xz_time('cmt'); 
  3. //一天內的輸出結果: 3 Hours-ago  
  4. //一天后的輸出結果: 2015/12/26 - 20:01 
  5.    
  6.    
  7. //調用時長為2天內的相對時間,之前時間顯示默認時間 
  8. echo xz_time('cmt',172800); 
  9. //2天內的輸出結果: 3 Hours-ago  
  10. //2天后的輸出結果: 2015/12/26 - 20:01 
  11.   
  12. //調用時長為2天內的相對時間,相對時間之后顯示 '之前的評論' 
  13. echo xz_time('cmt',172800,'之前的評論'); 
  14. //2天內的輸出結果: 3 Hours 之前的評論  
  15. //2天后的輸出結果: 2015/12/26 - 20:01 
  16.    
  17. //調用時長為2天內的相對時間,之前時間顯示為 年-月-日 
  18. echo xz_time('cmt',172800,'之前的評論',get_comment_time('Y-n-j')); 
  19. //2天內的輸出結果: 3 Hours 之前的評論  
  20. //2天后的輸出結果: 2015/12/26

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
成人妇女免费播放久久久| www.亚洲一区| 国产精品女主播视频| 91久久国产精品| 国产成人福利夜色影视| 成人中文字幕+乱码+中文字幕| 91日本在线观看| 欧美性色xo影院| 国内免费久久久久久久久久久| 国产视频在线观看一区二区| 亚洲精品456在线播放狼人| 2020国产精品视频| 欧美成人精品在线视频| 国产精品入口日韩视频大尺度| 青青草国产精品一区二区| 亚洲一区二区三区视频播放| 久久久av网站| 国产精品美女免费看| 精品成人69xx.xyz| 午夜精品视频网站| 国产亚洲a∨片在线观看| 精品久久久香蕉免费精品视频| 91性高湖久久久久久久久_久久99| 日韩av电影中文字幕| 久久久亚洲福利精品午夜| 亚洲精品大尺度| 91日本视频在线| 国产精品成av人在线视午夜片| 在线日韩中文字幕| 欧美影院成年免费版| 国产成人+综合亚洲+天堂| 青青草精品毛片| 亚洲毛片在线免费观看| 日韩国产中文字幕| 久久九九有精品国产23| 精品久久久香蕉免费精品视频| 91久久精品美女高潮| 精品动漫一区二区三区| 久久国产精品亚洲| 日韩中文字幕免费| 国产亚洲精品美女| 国产欧美久久久久久| 欧美疯狂做受xxxx高潮| 国产91热爆ts人妖在线| 在线观看中文字幕亚洲| 丝袜亚洲欧美日韩综合| 日韩欧美成人网| 91精品国产精品| 91精品啪在线观看麻豆免费| 亚洲国产成人精品久久久国产成人一区| 日本成人免费在线| 国产精品扒开腿爽爽爽视频| 亚洲一区二区自拍| 综合136福利视频在线| 亚洲性xxxx| 69久久夜色精品国产69乱青草| 久久频这里精品99香蕉| 欧美肥臀大乳一区二区免费视频| 国产日韩欧美在线视频观看| 欧美成人精品在线观看| 最近2019中文字幕mv免费看| 成人午夜激情免费视频| 在线电影av不卡网址| 国产在线拍揄自揄视频不卡99| 欧美剧在线观看| 欧美日韩国产精品一区二区三区四区| 亚洲性夜色噜噜噜7777| 97久久精品国产| 欧美成人免费大片| www.日本久久久久com.| 日韩电影在线观看中文字幕| 久久综合五月天| 亚洲国产美女久久久久| 国产精品一区二区三区在线播放| 两个人的视频www国产精品| 精品成人久久av| 97在线视频免费看| 国产精品久久久久久久久久ktv| 日韩精品中文在线观看| 精品精品国产国产自在线| 美女黄色丝袜一区| 国产精品自拍小视频| 亚洲欧美制服丝袜| 亚洲 日韩 国产第一| 精品国产精品三级精品av网址| 精品国产精品三级精品av网址| 国产精品久久久av| 国产一区二区成人| 91免费观看网站| 亚洲精品福利在线观看| 亚洲欧美精品伊人久久| 久久99精品视频一区97| 在线精品高清中文字幕| 欧美一区二区视频97| 色琪琪综合男人的天堂aⅴ视频| 国产日韩在线一区| 亚洲a在线播放| 4438全国亚洲精品在线观看视频| 欧美黑人一级爽快片淫片高清| 日韩电影在线观看免费| 久99久在线视频| 亚洲精品国产美女| 久久久亚洲福利精品午夜| 久久伊人精品视频| 4438全国成人免费| 国产精品美女在线| 成人午夜一级二级三级| 三级精品视频久久久久| 国产一区二区三区久久精品| 自拍亚洲一区欧美另类| 国产午夜精品全部视频播放| 欧美激情va永久在线播放| 欧洲亚洲在线视频| 成人网页在线免费观看| 日韩欧美一区二区在线| 91精品在线观看视频| 久久久视频精品| 午夜精品久久久久久久男人的天堂| 色哟哟网站入口亚洲精品| 国产美女被下药99| 日本久久久久亚洲中字幕| 亚洲视频欧洲视频| 日韩av在线免费观看| 欧美激情精品久久久久| 日韩hd视频在线观看| 欧美三级免费观看| 91精品国产高清久久久久久| 欧美在线性视频| 日韩中文在线中文网在线观看| 性欧美激情精品| 日韩精品福利网站| 国产精品国产福利国产秒拍| 日韩视频免费中文字幕| 91中文字幕在线| 青草青草久热精品视频在线网站| 国产精品高精视频免费| 国产欧美欧洲在线观看| 97av在线播放| 久久久久久综合网天天| 日本精品一区二区三区在线播放视频| 欧美精品在线观看91| 久久91精品国产91久久跳| 日韩国产精品一区| 欧洲成人性视频| 国产在线拍偷自揄拍精品| 中文字幕在线观看亚洲| 久久久国产精品一区| 日韩欧美大尺度| 欧美裸体xxxx| 亚洲片在线观看| 亚洲欧美激情一区| 国产视频丨精品|在线观看| 国产精品免费久久久久影院| 欧美裸体xxxx极品少妇软件| 欧美日韩福利在线观看| 久久久精品2019中文字幕神马| 日韩精品在线影院| 92看片淫黄大片看国产片| 久久国产精品久久久久| 日韩高清免费观看| 日韩视频在线免费| 亚洲精品久久久久久久久| 久久99热这里只有精品国产| 久久免费视频这里只有精品|