


優(yōu)化WordPress中文章與評(píng)論的時(shí)間顯示,wordpress評(píng)論_PHP教程
Jul 12, 2016 am 09:00 AM優(yōu)化WordPress中文章與評(píng)論的時(shí)間顯示,wordpress評(píng)論
很多博客都喜歡用 評(píng)論發(fā)表于 “XXX 分鐘 之前”、文章發(fā)表于 “XXX 分鐘 之前”來(lái)顯示文章評(píng)論的時(shí)間,改善的時(shí)間顯示方式不僅能很直觀的告訴讀者這篇文章或評(píng)論發(fā)表距今已有多長(zhǎng)時(shí)間,更能增強(qiáng)評(píng)論回復(fù)的時(shí)間感,哥很喜歡,因?yàn)榍耙魂囎訅涸谑掷锏臇|西太多了,工作日白天又苦于不能上網(wǎng),所以主題的樣式及功能部分一點(diǎn)一點(diǎn)的寫(xiě)拖了好長(zhǎng)時(shí)間,最近這陣子剛好輪到折騰評(píng)論了,所以就逐步參照網(wǎng)上流行的樣式一點(diǎn)一點(diǎn)的修改起來(lái)自己的評(píng)論樣式和功能。
So…..
Go…..
交道麻袋…..評(píng)論日期和文章日期調(diào)用函數(shù)不同,下面以評(píng)論日期為例,文章日期請(qǐng)自行調(diào)整。
改善的時(shí)間顯示方式的原理
很簡(jiǎn)單,就是通過(guò) WordPress 的一個(gè)內(nèi)置的函數(shù)處理現(xiàn)在的時(shí)間和文章、評(píng)論發(fā)表的時(shí)間差,顯示距今有X分鐘、X小時(shí)、X天。
這個(gè)函數(shù)就是 human_time_diff ()
用法:
<?php human_time_diff( $from, $to ) ;?>
說(shuō)明:
判斷兩個(gè)時(shí)間標(biāo)記的差異。
以人類(lèi)可閱讀的格式,如“1小時(shí)”、“5分鐘”、“兩天”,返回$from和$to 兩個(gè)時(shí)間變量的時(shí)間差。
從英文上也很好理解:from 到 to 嘛。(這句是很廢吧,哈哈。)
雛形版改善實(shí)現(xiàn)
//將你的評(píng)論時(shí)間顯示的函數(shù)改成如下就可以了 <?php echo human_time_diff( get_comment_time('U') , current_time('timestamp')) ;?>
所有的日期都計(jì)算時(shí)間差,很暴力吧?
初級(jí)版的實(shí)現(xiàn)辦法
簡(jiǎn)單的加一個(gè)判斷,如果評(píng)論時(shí)間沒(méi)有超過(guò)一天則顯示XX小時(shí)之前,如果超過(guò)一天則顯示原始日期。
這樣比較人性化吧?總不能讓讀者總掰著指頭算38天之前是什么日子吧?哈哈!
代碼:
<?php //計(jì)算是否超過(guò)一天 注:86400是一天的總共的秒數(shù) 60秒X60分X24小時(shí)=86400秒 //如果覺(jué)得一天不夠的話,請(qǐng)自行計(jì)算填上。 if (current_time('timestamp') - get_comment_time('U') < 86400 ) //一天之內(nèi)顯示的東西 {$cmt_time = human_time_diff( get_comment_time('U') , current_time('timestamp') ) . '-ago';} //超過(guò)一天這么顯示 else{$cmt_time = get_comment_date( 'Y/n/j' ).' - '.get_comment_time('','',false);}; ;?> //將你的評(píng)論時(shí)間顯示的函數(shù)改成如下就可以了 <?php echo $cmt_time ;?>
增強(qiáng)版
那么我們能不能再增強(qiáng)一下呢?
為什么增強(qiáng)?
好吧,因?yàn)槲疫@個(gè)人比較較真,覺(jué)得中文顯示日期不好看,影響到我的排版,喜歡英文顯示日期,而中文版的 WordPress 漢化的真的是沒(méi)有死角(漢化的真仔細(xì)),如果我們直接用 human_time_diff 函數(shù)輸出的話,中文版的 WordPress 會(huì)將結(jié)果全部漢化顯示XX小時(shí)XX天之前,這樣很有可能會(huì)影響我們的排版,而且這個(gè) human_time_diff 函數(shù)里既沒(méi)有留鉤子,也沒(méi)有預(yù)留一個(gè)不漢化的參數(shù),所以我們想要顯示英文的話,只有兩個(gè)辦法:
直接修改 human_time_diff 函數(shù),讓漢化失效,這樣做太暴力,而且以后升級(jí)了還要再進(jìn)去改,倫家不喜歡。
重寫(xiě)一個(gè)自己的 human_time_diff 函數(shù),繞過(guò)漢化。
function.php 里面強(qiáng)力插入如下代碼:
//原函數(shù)的 day hour min 都是小寫(xiě)的, //我把這三個(gè)詞的首寫(xiě)字母改成大寫(xiě)的,即Day Hour Min 就可以避開(kāi)漢化了,你懂? 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;
時(shí)間判斷代碼改為如下:
<?php //只是把計(jì)算日期差異的函數(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);}; ;?> //將你的評(píng)論時(shí)間顯示的函數(shù)改成如下就可以了 <?php echo $cmt_time ;?>
顯示評(píng)論、文章相對(duì)時(shí)間
根據(jù)上面的版本、下面的這個(gè)應(yīng)該算是增強(qiáng)改進(jìn)版吧,因?yàn)橐_(dá)到效果還是需要在主題里添加代碼,所以還沒(méi)到終極版,哈哈。
函數(shù)代碼如下:
相對(duì)時(shí)間函數(shù)
if ( ! function_exists( 'xz_time' ) ) : /** * 顯示文章、評(píng)論相對(duì)時(shí)間的封裝函數(shù). *作者:XiangZi http://PangBu.com/ * @param $type 類(lèi)型字符串 'cmt'或'art',用于定義顯示的是評(píng)論時(shí)間還是文章時(shí)間。 * @param $ago_time 數(shù)字類(lèi)型 用于定義顯示相對(duì)時(shí)間的時(shí)間限制 默認(rèn)為86400秒即一天。 * @param $after 字符串型 顯示在相對(duì)時(shí)間之后的文字,默認(rèn)為 ' - ago' * @param $late 字符串型 超過(guò)時(shí)間限制后顯示的項(xiàng)目,默認(rèn)為 get_the_time('Y/n/j - H:i')或get_comment_time('Y/n/j - H:i') * @return 返回字符串(相對(duì)時(shí)間或絕對(duì)時(shí)間) */ 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文件中
然后在你想顯示相對(duì)時(shí)間的地方調(diào)用該函數(shù)即可。
函數(shù)最少輸入設(shè)定一個(gè)參數(shù) 即$type 類(lèi)型字符串 ‘cmt'(評(píng)論時(shí)間)或'art'(文章時(shí)間)
示例:
//最簡(jiǎn)單的調(diào)用 echo xz_time('cmt'); //一天內(nèi)的輸出結(jié)果: 3 Hours-ago //一天后的輸出結(jié)果: 2015/12/26 - 20:01 //調(diào)用時(shí)長(zhǎng)為2天內(nèi)的相對(duì)時(shí)間,之前時(shí)間顯示默認(rèn)時(shí)間 echo xz_time('cmt',172800); //2天內(nèi)的輸出結(jié)果: 3 Hours-ago //2天后的輸出結(jié)果: 2015/12/26 - 20:01 //調(diào)用時(shí)長(zhǎng)為2天內(nèi)的相對(duì)時(shí)間,相對(duì)時(shí)間之后顯示 '之前的評(píng)論' echo xz_time('cmt',172800,'之前的評(píng)論'); //2天內(nèi)的輸出結(jié)果: 3 Hours 之前的評(píng)論 //2天后的輸出結(jié)果: 2015/12/26 - 20:01 //調(diào)用時(shí)長(zhǎng)為2天內(nèi)的相對(duì)時(shí)間,之前時(shí)間顯示為 年-月-日 echo xz_time('cmt',172800,'之前的評(píng)論',get_comment_time('Y-n-j')); //2天內(nèi)的輸出結(jié)果: 3 Hours 之前的評(píng)論 //2天后的輸出結(jié)果: 2015/12/26
您可能感興趣的文章:
- WordPress中利用AJAX技術(shù)進(jìn)行評(píng)論提交的實(shí)現(xiàn)示例
- WordPress中利用AJAX異步獲取評(píng)論用戶頭像的方法
- 詳解WordPress中調(diào)用評(píng)論模板和循環(huán)輸出評(píng)論的PHP函數(shù)
- WordPress中限制非管理員用戶在文章后只能評(píng)論一次
- 講解WordPress中用于獲取評(píng)論模板和搜索表單的PHP函數(shù)
- 解決WordPress使用CDN后博文無(wú)法評(píng)論的錯(cuò)誤
- 利用jQuery實(shí)現(xiàn)WordPress中@的ID懸浮顯示評(píng)論內(nèi)容
- 編寫(xiě)PHP腳本來(lái)實(shí)現(xiàn)WordPress中評(píng)論分頁(yè)的功能
- 修改PHP腳本使WordPress攔截垃圾評(píng)論的方法示例
- 在WordPress中實(shí)現(xiàn)評(píng)論頭像的自定義默認(rèn)和延遲加載
- WordPress中對(duì)訪客評(píng)論功能的一些優(yōu)化方法
- WordPress中鼠標(biāo)懸停顯示和隱藏評(píng)論及引用按鈕的實(shí)現(xiàn)

Alat AI Hot

Undress AI Tool
Gambar buka pakaian secara percuma

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Terdapat empat cara untuk menyesuaikan senarai artikel WordPress: Gunakan pilihan tema, gunakan plugin (seperti pesanan jenis pos, senarai pos WP, barangan boxy), gunakan kod (tambah tetapan dalam fail fungsi.php), atau ubah suai pangkalan data WordPress secara langsung.

Reka bentuk pembangunan web adalah bidang kerjaya yang menjanjikan. Walau bagaimanapun, industri ini juga menghadapi banyak cabaran. Memandangkan lebih banyak perniagaan dan jenama beralih ke pasaran dalam talian, pemaju web mempunyai peluang untuk menunjukkan kemahiran mereka dan berjaya dalam kerjaya mereka. Walau bagaimanapun, apabila permintaan untuk pembangunan web terus berkembang, bilangan pemaju juga semakin meningkat, mengakibatkan persaingan yang semakin sengit. Tetapi ia menarik bahawa jika anda mempunyai bakat dan kehendak, anda sentiasa dapat mencari cara baru untuk membuat reka bentuk dan idea yang unik. Sebagai pemaju web, anda mungkin perlu terus mencari alat dan sumber baru. Alat dan sumber baru ini bukan sahaja menjadikan pekerjaan anda lebih mudah, tetapi juga meningkatkan kualiti kerja anda, dengan itu membantu anda memenangi lebih banyak perniagaan dan pelanggan. Trend pembangunan web sentiasa berubah.

Mengimport kod sumber WordPress memerlukan langkah-langkah berikut: Buat sub-tema untuk pengubahsuaian tema. Import kod sumber dan ganti rugi fail dalam sub-topik. Aktifkan sub-tema untuk menjadikannya berkesan. Uji perubahan untuk memastikan semuanya berfungsi.

Untuk membina laman web menggunakan hos WordPress, anda perlu: pilih penyedia hosting yang boleh dipercayai. Beli nama domain. Sediakan akaun hosting WordPress. Pilih topik. Tambah halaman dan artikel. Pasang pemalam. Sesuaikan laman web anda. Menerbitkan laman web anda.

Adakah anda ingin menyambungkan laman web anda ke alat webmaster Yandex? Alat webmaster seperti Google Search Console, Bing dan Yandex boleh membantu anda mengoptimumkan laman web anda, memantau lalu lintas, menguruskan robots.txt, periksa kesilapan laman web, dan banyak lagi. Dalam artikel ini, kami akan berkongsi cara menambah laman web WordPress anda ke alat Webmaster Yandex untuk memantau trafik enjin carian anda. Apa itu Yandex? Yandex adalah enjin carian popular yang berpusat di Rusia, sama seperti Google dan Bing. Anda boleh cemerlang dalam yandex

Adakah anda ingin tahu cara menggunakan kuki di laman web WordPress anda? Kuki adalah alat yang berguna untuk menyimpan maklumat sementara dalam pelayar pengguna. Anda boleh menggunakan maklumat ini untuk meningkatkan pengalaman pengguna melalui pemperibadian dan penargetan tingkah laku. Dalam panduan muktamad ini, kami akan menunjukkan kepada anda bagaimana untuk menetapkan, mendapatkan, dan memadam WordPresscookies seperti profesional. Nota: Ini adalah tutorial lanjutan. Ia memerlukan anda mahir dalam laman web HTML, CSS, WordPress dan PHP. Apa itu kuki? Kuki dicipta dan disimpan apabila pengguna melawat laman web.

Adakah anda perlu membetulkan kesilapan muat naik imej HTTP di WordPress? Kesalahan ini boleh menjadi sangat mengecewakan apabila anda membuat kandungan dalam WordPress. Ini biasanya berlaku apabila anda memuat naik imej atau fail lain ke CMS anda menggunakan perpustakaan media WordPress terbina dalam. Dalam artikel ini, kami akan menunjukkan kepada anda bagaimana untuk membetulkan kesilapan muat naik imej HTTP di WordPress. Apakah sebab kesilapan HTTP semasa memuat naik media WordPress? Apabila anda cuba memuat naik fail ke WO menggunakan pemuat naik media WordPress

Untuk membuat akaun di WordPress, hanya lawati laman webnya, pilih pilihan pendaftaran, isikan borang pendaftaran, dan sahkan alamat e -mel anda. Cara lain untuk mendaftar termasuk menggunakan akaun Google atau ID Apple. Manfaat mendaftar termasuk membuat laman web, mendapatkan ciri -ciri, menyertai komuniti, dan mendapat sokongan.
