優(yōu)化WordPress中文章與評論的時間顯示,wordpress評論_PHP教程
Jul 12, 2016 am 09:00 AM優(yōu)化WordPress中文章與評論的時間顯示,wordpress評論
很多博客都喜歡用 評論發(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
您可能感興趣的文章:
- WordPress中利用AJAX技術(shù)進(jìn)行評論提交的實現(xiàn)示例
- WordPress中利用AJAX異步獲取評論用戶頭像的方法
- 詳解WordPress中調(diào)用評論模板和循環(huán)輸出評論的PHP函數(shù)
- WordPress中限制非管理員用戶在文章后只能評論一次
- 講解WordPress中用于獲取評論模板和搜索表單的PHP函數(shù)
- 解決WordPress使用CDN后博文無法評論的錯誤
- 利用jQuery實現(xiàn)WordPress中@的ID懸浮顯示評論內(nèi)容
- 編寫PHP腳本來實現(xiàn)WordPress中評論分頁的功能
- 修改PHP腳本使WordPress攔截垃圾評論的方法示例
- 在WordPress中實現(xiàn)評論頭像的自定義默認(rèn)和延遲加載
- WordPress中對訪客評論功能的一些優(yōu)化方法
- WordPress中鼠標(biāo)懸停顯示和隱藏評論及引用按鈕的實現(xiàn)

熱AI工具

Undress AI Tool
免費脫衣圖片

Undresser.AI Undress
人工智慧驅(qū)動的應(yīng)用程序,用於創(chuàng)建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發(fā)環(huán)境

Dreamweaver CS6
視覺化網(wǎng)頁開發(fā)工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

熱門話題

有四種方法可以調(diào)整 WordPress 文章列表:使用主題選項、使用插件(如 Post Types Order、WP Post List、Boxy Stuff)、使用代碼(在 functions.php 文件中添加設(shè)置)或直接修改 WordPress 數(shù)據(jù)庫。

Web開發(fā)設(shè)計是一個充滿潛力的職業(yè)領(lǐng)域。然而,這個行業(yè)也面臨著諸多挑戰(zhàn)。隨著越來越多的企業(yè)和品牌轉(zhuǎn)向網(wǎng)絡(luò)市場,Web開發(fā)者有機會展示他們的技能並在職業(yè)生涯中取得成功。然而,隨著對Web開發(fā)需求的持續(xù)增長,開發(fā)人員的數(shù)量也在增加,導(dǎo)致競爭日益激烈。但令人振奮的是,如果你具備天賦和意願,你總能找到新方法來創(chuàng)造獨特的設(shè)計和創(chuàng)意。作為一名Web開發(fā)人員,你可能需要不斷尋找新的工具和資源。這些新工具和資源不僅能讓你的工作更加便捷,還能提升工作質(zhì)量,從而幫助你贏得更多的業(yè)務(wù)和客戶。 Web開發(fā)的趨勢不斷變化,

導(dǎo)入 WordPress 源碼需要以下步驟:創(chuàng)建子主題以進(jìn)行主題修改。導(dǎo)入源碼,覆蓋子主題中的文件。激活子主題,使其生效。測試更改,確保一切正常。

要使用 WordPress 主機建站,需要:選擇一個可靠的主機提供商。購買一個域名。設(shè)置 WordPress 主機帳戶。選擇一個主題。添加頁面和文章。安裝插件。自定義您的網(wǎng)站。發(fā)布您的網(wǎng)站。

您想將您的網(wǎng)站連接到Y(jié)andex網(wǎng)站管理員工具嗎? Google搜索控制臺、Bing和Yandex等網(wǎng)站管理員工具可幫助您優(yōu)化網(wǎng)站、監(jiān)控流量、管理robots.txt、檢查網(wǎng)站錯誤等。在本文中,我們將分享如何在Yandex網(wǎng)站管理員工具中添加您的WordPress網(wǎng)站來監(jiān)控您的搜索引擎流量。什麼是Yandex? Yandex是一個位於俄羅斯的流行搜索引擎,類似於Google和Bing。您可以在Yandex中優(yōu)

您想了解如何在WordPress網(wǎng)站上使用cookie嗎? Cookie是在用戶瀏覽器中存儲臨時信息的有用工具。您可以使用此信息通過個性化和行為定位來增強用戶體驗。在本終極指南中,我們將向您展示如何像專業(yè)人士一樣設(shè)置、獲取和刪除WordPresscookie。注意:這是一個高級教程。它要求您精通HTML、CSS、WordPress網(wǎng)站和PHP。什麼是Cookie? Cookie是用戶訪問網(wǎng)站時創(chuàng)建並存儲在用戶瀏覽

您需要修復(fù)WordPress中的HTTP圖片上傳錯誤嗎?當(dāng)您在WordPress中創(chuàng)建內(nèi)容時,此錯誤可能會特別令人沮喪。當(dāng)您使用內(nèi)置WordPress媒體庫將圖像或其他文件上傳到CMS時,通常會發(fā)生這種情況。在本文中,我們將向您展示如何輕鬆修復(fù)WordPress中的HTTP圖片上傳錯誤。 WordPress媒體上傳過程中出現(xiàn)HTTP錯誤的原因是什麼?當(dāng)您嘗試使用WordPress媒體上傳器將文件上傳到Wo

要在 WordPress 上創(chuàng)建賬號,只需訪問其網(wǎng)站,選擇註冊選項,填寫註冊表,並驗證您的電子郵件地址。其他註冊方法包括使用 Google 賬號或 Apple ID。註冊的好處包括創(chuàng)建網(wǎng)站、獲得功能、加入社區(qū)和獲得支持。
