編寫(xiě)PHP腳本來(lái)實(shí)現(xiàn)WordPress中評(píng)論分頁(yè)的功能
方法說(shuō)明
首先來(lái)看看可能被用到的方法. 打開(kāi)文件 wp-includes/link-template.php 你會(huì)發(fā)現(xiàn) WordPress 2.7 多了 4 個(gè)針對(duì)評(píng)論分頁(yè)的方法:
- get_comments_pagenum_link
- $pagenum: 頁(yè)碼
- $max_page: 最大頁(yè)數(shù)
返回鏈接地址. 在本次應(yīng)用中不會(huì)被用到, 但大家應(yīng)該知道有這個(gè)方法, 將方便你制作插件.
next_comments_link
$label: 顯示的字樣, 默認(rèn)是 » Newer Comments. 但我一直認(rèn)為這是 bug, 應(yīng)該是 Newer Comments » 吧?
$max_page: 最大頁(yè)數(shù)
顯示跳轉(zhuǎn)到下一頁(yè)的鏈接.
previous_comments_link
$label: 顯示的字樣, 默認(rèn)是 « Older Comments.
顯示跳轉(zhuǎn)到上一頁(yè)的鏈接.
paginate_comments_links
$args: 字符串參數(shù)組
- base: 頁(yè)面 URL
- format: 我也不知道是什么. 誰(shuí)能告訴我?
- total: 最大頁(yè)數(shù)
- current: 當(dāng)前頁(yè)碼
- echo: 是否顯示, 默認(rèn)為顯示. 不顯示時(shí)返回字符串 HTML.
- add_fragment: hash, 默認(rèn)是 #comments. 為求統(tǒng)一, 方便理解, 也免得修改, 建議制作主題時(shí) 評(píng)論部分用 id="comments"
顯示評(píng)論分頁(yè)或返回評(píng)論分頁(yè)的 HTML.
實(shí)例說(shuō)明
1. 上一頁(yè)和下一頁(yè)
這是最簡(jiǎn)單, 也是最常被提到的, 效果與文章分頁(yè)沒(méi)什么兩樣.
<div id="commentnavi">
<span class="floatleft"><?php previous_comments_link(__('« Older Comments')) ?></span>
<span class="floatright"><?php next_comments_link(__('Newer Comments »')) ?></span>
<div class="fixed"></div>
</div>
2. 導(dǎo)航式分頁(yè)
對(duì)訪客最透明, 使用起來(lái)最方便的, 效果與使用 WP-PageNavi 分頁(yè)的效果相仿.
<div id="commentnavi"> <?php paginate_comments_links(); ?> </div>
看看前面的兩個(gè)例子, 好像我們要的功能都可以實(shí)現(xiàn)了. 但是你覺(jué)不覺(jué)得有點(diǎn)怪怪的? 如果后臺(tái)中選擇不顯示評(píng)論分頁(yè), 或者評(píng)論數(shù)不夠分頁(yè), 也要顯示 id="commentnavi" 的外框嗎? 不! 我們要改改這個(gè)程序.
可以通過(guò)調(diào)用方法 get_option('page_comments') 來(lái)獲取后臺(tái)的評(píng)論分頁(yè)選項(xiàng).
我們還可以調(diào)用方法 paginate_comments_links('echo=0') 來(lái)知道評(píng)論是否足夠并需要進(jìn)行分頁(yè)處理.
3. 上一頁(yè)和下一頁(yè) (改進(jìn))
<?php
// 如果用戶在后臺(tái)選擇要顯示評(píng)論分頁(yè)
if (get_option('page_comments')) {
// 獲取評(píng)論分頁(yè)的 HTML
$comment_pages = paginate_comments_links('echo=0');
// 如果評(píng)論分頁(yè)的 HTML 不為空, 顯示上一頁(yè)和下一頁(yè)的鏈接
if ($comment_pages) {
?>
<div id="commentnavi">
<span class="floatleft"><?php previous_comments_link(__('« Older Comments')) ?></span>
<span class="floatright"><?php next_comments_link(__('Newer Comments »')) ?></span>
<div class="fixed"></div>
</div>
<?php
}
}
?>
4. 導(dǎo)航式分頁(yè) (改進(jìn))
<?php
// 如果用戶在后臺(tái)選擇要顯示評(píng)論分頁(yè)
if (get_option('page_comments')) {
// 獲取評(píng)論分頁(yè)的 HTML
$comment_pages = paginate_comments_links('echo=0');
// 如果評(píng)論分頁(yè)的 HTML 不為空, 顯示導(dǎo)航式分頁(yè)
if ($comment_pages) {
?>
<div id="commentnavi">
<?php echo $comment_pages; ?>
</div>
<?php
}
}
?>
對(duì)于最新的評(píng)論分頁(yè)功能, 我有點(diǎn)自己的看法, 也隨便說(shuō)一下吧.
評(píng)論分頁(yè)并不完美. 如果外面某個(gè)鏈接轉(zhuǎn)跳到 http://www.example.com/#5630, 但是編號(hào)為 5630 的評(píng)論并不在第一頁(yè), 那么就無(wú)法定位到這條評(píng)論上面, 轉(zhuǎn)跳過(guò)來(lái)的兄弟的感覺(jué)會(huì)比較不爽.
另外, WordPress 的評(píng)論分頁(yè)不是 AJAX 應(yīng)用 (為瀏覽器的兼容性考慮, 以后也不太可能是), 所以翻頁(yè)會(huì)相當(dāng)耗時(shí). 所以我建議, 就算要分頁(yè), 也要將每頁(yè)顯示的評(píng)論數(shù)設(shè)大一點(diǎn). 30? 50? 100? 因博而異.
好了, 大概你已經(jīng)知道該怎么使用了? CSS 就不多說(shuō)了, 各有所好嘛, 這個(gè)不好說(shuō).
- 使用CDN和AJAX加速WordPress中jQuery的加載
- WordPress JQuery處理沙發(fā)頭像
- 利用jQuery實(shí)現(xiàn)WordPress中@的ID懸浮顯示評(píng)論內(nèi)容
- 詳解WordPress中調(diào)用評(píng)論模板和循環(huán)輸出評(píng)論的PHP函數(shù)
- WordPress中鼠標(biāo)懸停顯示和隱藏評(píng)論及引用按鈕的實(shí)現(xiàn)
- 解決WordPress使用CDN后博文無(wú)法評(píng)論的錯(cuò)誤
- 優(yōu)化WordPress中文章與評(píng)論的時(shí)間顯示
- 在WordPress中實(shí)現(xiàn)評(píng)論頭像的自定義默認(rèn)和延遲加載
- WordPress中利用AJAX異步獲取評(píng)論用戶頭像的方法
- WordPress中限制非管理員用戶在文章后只能評(píng)論一次
- 使用jQuery實(shí)現(xiàn)WordPress中的Ctrl+Enter和@評(píng)論回復(fù)
相關(guān)文章
解決php寫(xiě)入數(shù)據(jù)庫(kù)亂碼的問(wèn)題
在本文里小編給大家分享的是一篇關(guān)于解決php寫(xiě)入數(shù)據(jù)庫(kù)亂碼的問(wèn)題的知識(shí)點(diǎn)內(nèi)容,需要的朋友們可以學(xué)習(xí)下。2019-09-09
PHP+RabbitMQ實(shí)現(xiàn)消息隊(duì)列的完整代碼
這篇文章主要給大家介紹了關(guān)于利用PHP+RabbitMQ實(shí)現(xiàn)消息隊(duì)列的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用PHP具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-03-03
PHP生成驗(yàn)證碼時(shí)“圖像因其本身有錯(cuò)無(wú)法顯示”的解決方法
以下是對(duì)PHP生成驗(yàn)證碼時(shí)“圖像因其本身有錯(cuò)無(wú)法顯示”的解決方法進(jìn)行了詳細(xì)的分析介紹,需要的朋友可以過(guò)來(lái)參考下2013-08-08
php圖像處理函數(shù)imagecopyresampled用法詳解
這篇文章主要介紹了php圖像處理函數(shù)imagecopyresampled用法,結(jié)合實(shí)例形式詳細(xì)分析了imagecopyresampled函數(shù)的功能、參數(shù)、使用方法,需要的朋友可以參考下2016-12-12
[企業(yè)公眾號(hào)]升級(jí)到[企業(yè)微信]之后發(fā)送消息失敗的解決方法
這篇文章主要介紹了[企業(yè)公眾號(hào)]升級(jí)到[企業(yè)微信]之后發(fā)送消息失敗的解決方法,涉及微信接口的修改相關(guān)操作,需要的朋友可以參考下2017-06-06

