開發(fā)WordPress主題的時候,很多朋友喜歡做一個用戶列表,來增加網(wǎng)站用戶的活躍度,創(chuàng)建用戶列表很簡單,直接用get_users功能就可以實現(xiàn),可是當用戶數(shù)量非常大的時候,所有用戶在一個頁面顯示出來會造成這個頁面打開的速度非常慢,這時候為用戶列表增加一個分頁功能就非常有必要了,很多朋友在實現(xiàn)分頁功能的時候遇到了問題。今天我們接著創(chuàng)建用戶列表分頁的例子,來介紹一下 WordPress 的 paginate_links 函數(shù)。
首先我們需要查詢并顯示用戶列表,順便把分頁需要的數(shù)據(jù)準備好
$number = 10; //每頁顯示的數(shù)量
$paged = (get_query_var('paged')) ? get_query_var('paged') : 1; //當前第幾頁
$offset = ($paged - 1) * $number; //偏移量
$users = get_users(); //獲取所有用戶
$query = get_users('&offset='.$offset.'&number='.$number); //當前頁面查詢到的用戶
$total_users = count($users); //用戶總數(shù)
$total_query = count($query); //總查詢數(shù)量
$total_pages = intval($total_users / $number) + 1; //總頁數(shù)
foreach($query as $q) {
//列出用戶
}
有了上面的數(shù)據(jù),我們使用 paginate_links 功能顯示分頁
分頁的原理就不需要多說了,需要的數(shù)據(jù)無非就是一個每頁顯示的數(shù)據(jù)量,總數(shù)據(jù)量和當前頁數(shù),這些數(shù)據(jù)我們在上面已經(jīng)準備好了,我們只需要把這些參數(shù)傳給 paginate_links 就可以了,當然,如果你非要寫原始的 SQL 語句來查詢,直接使用 wpdb 也是可以實現(xiàn)的。
if ($total_users > $total_query) {
echo '<div id="pagination" class="clearfix">';
echo '<span class="pages">Pages:</span>';
//從第一頁和查詢參數(shù)頁中選一個最大的作為當前頁數(shù)
$current_page = max(1, get_query_var('paged'));
//顯示分頁
echo paginate_links(array(
'base' => get_pagenum_link(1) . '%_%',
'format' => 'page/%#%/',
'current' => $current_page,
'total' => $total_pages,
'prev_next' => false,
'type' => 'list',
));
echo '</div>';
}
利用同樣的方法,我們也可以實現(xiàn) WordPress 分類標簽列表分頁功能,甚至在 WordPress 中自定義數(shù)據(jù)表的分頁功能,也可以通過 paginate_links 函數(shù)實現(xiàn)?;蛘呷绻惚容^熟悉用自己寫的或者其他分頁函數(shù)庫,也是一樣的原理和方法。


