程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> PHP綜合 >> 編寫PHP腳本來實現WordPress中評論分頁的功能

編寫PHP腳本來實現WordPress中評論分頁的功能

編輯:PHP綜合

方法說明

首先來看看可能被用到的方法. 打開文件 wp-includes/link-template.php 你會發現 WordPress 2.7 多了 4 個針對評論分頁的方法:

  • get_comments_pagenum_link
  • $pagenum: 頁碼
  • $max_page: 最大頁數

返回鏈接地址. 在本次應用中不會被用到, 但大家應該知道有這個方法, 將方便你制作插件.

next_comments_link

$label: 顯示的字樣, 默認是 » Newer Comments. 但我一直認為這是 bug, 應該是 Newer Comments » 吧?

$max_page: 最大頁數

顯示跳轉到下一頁的鏈接.

previous_comments_link
$label: 顯示的字樣, 默認是 « Older Comments.
顯示跳轉到上一頁的鏈接.

paginate_comments_links
$args: 字符串參數組
- base: 頁面 URL
- format: 我也不知道是什麼. 誰能告訴我?
- total: 最大頁數
- current: 當前頁碼
- echo: 是否顯示, 默認為顯示. 不顯示時返回字符串 HTML.
- add_fragment: hash, 默認是 #comments. 為求統一, 方便理解, 也免得修改, 建議制作主題時 評論部分用 id="comments"
顯示評論分頁或返回評論分頁的 HTML.

實例說明

1. 上一頁和下一頁
這是最簡單, 也是最常被提到的, 效果與文章分頁沒什麼兩樣.

<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. 導航式分頁
對訪客最透明, 使用起來最方便的, 效果與使用 WP-PageNavi 分頁的效果相仿.

<div id="commentnavi">
 <?php paginate_comments_links(); ?>
</div>

看看前面的兩個例子, 好像我們要的功能都可以實現了. 但是你覺不覺得有點怪怪的? 如果後台中選擇不顯示評論分頁, 或者評論數不夠分頁, 也要顯示 id="commentnavi" 的外框嗎? 不! 我們要改改這個程序.
可以通過調用方法 get_option('page_comments') 來獲取後台的評論分頁選項.
我們還可以調用方法 paginate_comments_links('echo=0') 來知道評論是否足夠並需要進行分頁處理.

3. 上一頁和下一頁 (改進)

<?php
 // 如果用戶在後台選擇要顯示評論分頁
 if (get_option('page_comments')) {
 // 獲取評論分頁的 HTML
 $comment_pages = paginate_comments_links('echo=0');
 // 如果評論分頁的 HTML 不為空, 顯示上一頁和下一頁的鏈接
 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. 導航式分頁 (改進)

<?php
 // 如果用戶在後台選擇要顯示評論分頁
 if (get_option('page_comments')) {
 // 獲取評論分頁的 HTML
 $comment_pages = paginate_comments_links('echo=0');
 // 如果評論分頁的 HTML 不為空, 顯示導航式分頁
 if ($comment_pages) {
?>
 <div id="commentnavi">
 <?php echo $comment_pages; ?>
 </div>
<?php
 }
 }
?>

對於最新的評論分頁功能, 我有點自己的看法, 也隨便說一下吧.
評論分頁並不完美. 如果外面某個鏈接轉跳到 http://www.example.com/#5630, 但是編號為 5630 的評論並不在第一頁, 那麼就無法定位到這條評論上面, 轉跳過來的兄弟的感覺會比較不爽.
另外, WordPress 的評論分頁不是 AJAX 應用 (為浏覽器的兼容性考慮, 以後也不太可能是), 所以翻頁會相當耗時. 所以我建議, 就算要分頁, 也要將每頁顯示的評論數設大一點. 30? 50? 100? 因博而異.

好了, 大概你已經知道該怎麼使用了? CSS 就不多說了, 各有所好嘛, 這個不好說.

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved