如果你是 WordPress主题开发者,你肯定需要实现存档分页导航功能,虽然目前有不少方法,但是还是推荐尽量使用官方函数来实现。今天介绍的函数 paginate_links,可以用来检索归档后的页面分页链接。其实,该函数可以被用在任何地方实现分页链接。

paginate_links 用法


<?php echo paginate_links( $args ); ?>

paginate_links 默认参数


<?php $args = array(
	'base'         => '%_%',
	'format'       => '?page=%#%',
	'total'        => 1,
	'current'      => 0,
	'show_all'     => False,
	'end_size'     => 1,
	'mid_size'     => 2,
	'prev_next'    => True,
	'prev_text'    => __('« Previous'),
	'next_text'    => __('Next »'),
	'type'         => 'plain',
	'add_args'     => False,
	'add_fragment' => '',
	'before_page_number' => '',
	'after_page_number' => ''
); ?>

base – 用来参考的网址
format – 用于URL的分页结构,例如: /page/3
total – 总页数
current – 当前页码
show_all – 默认值是false,如果设置为true,那么将显示所有的可用页码
end_size – 页面显示在列表的末尾号
mid_size – 多少个数字到当前页面的两侧,但不包括当前页面
prev_next – 布尔值,是否包含上一页和下一页的链接
prev_text – 前一页的文字。只有当’prev_next’参数设置为true
next_text – 下一页的文字。只有当’prev_next’参数设置为true
type – 定义该函数返回什么,plain, array 或 list
add_args – 添加查询字符串参数到链接
add_fragment – 添加文本追加到每个链接
before_page_number – 在页码前显示的字符串
after_page_number – 在页码后显示的字符串

paginate_links 示例

这里只简单举一个使用例子,将下面的函数添加到当前主题的 functions.php 文件:


function ruikeedu_paging_nav(){
	global $wp_query;
 
	$big = 999999999; // 需要一个不太可能的整数
 
	$pagination_links = paginate_links( array(
		'base' => str_replace( $big, '%#%', esc_url( get_pagenum_link( $big ) ) ),
		'format' => '?paged=%#%',
		'current' => max( 1, get_query_var('paged') ),
		'total' => $wp_query->max_num_pages
	) );
 
echo $pagination_links;
}

然后在主题需要显示分页链接的地方使用下面的函数调用即可:


<?php if(function_exists('ruikeedu_paging_nav')) ruikeedu_paging_nav(); ?>

后续其它: