wordpress 函数paginate_links()
用于任何自定义查询结果的主循环分页,包括post列表或自定义文章类型列表,或者文章存档分页、评论分页以及自定义数据等,比如想调用指定用户的所有评论并实现分页就可以通过paginate_links()
函数实现。
默认分页
- <?php echo paginate_links( $args ); ?>
其中 $args 数组内容为:
- <?php $args = array(
- 'base' => '%_%',
- 'format' => '?paged=%#%',
- '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 – (字符串)(可选)用于引用的 URL,被用来创建分页链接, 默认值"%_%",如"http://example.com/all_posts.php%_%",如果设置了format参数,则无效
- format – (字符串)(可选)用于URL的分页结构,默认值"?page=%#%",如果使用了伪静态,则是"/page/%#%","%#%"表示页面,例如:/page/3
- total – (整数)(可选)总页数,默认值为1
- current – (整数)(可选)当前页码,默认值为0
- show_all – (布尔)(可选)是否显示所有页面,默认值是false,如果设置为true,设置为false,则调用end_size和mid_size的设置
- end_size – (整数)(可选)分页列表两边各显示多少个页码,默认值为1
- mid_size – (整数)(可选)当前页面页码两边的页码数量,不包括当前页码,默认值为2
- prev_next – (布尔)(可选)是否包含上一页和下一页的链接,默认值true
- prev_text – (字符串)(可选)前一页的文字,"prev_next"参数设置为true时生效,默认值 __('? Previous')
- next_text – (字符串)(可选)下一页的文字,"prev_next"参数设置为true时生效,默认值__('Next ?')
- type – (字符串)(可选)控制返回值的格式,plain、array 或 list,默认值plain
- add_args – (数组)(可选)添加查询字符串参数到链接,默认值false
- add_fragment – (字符串)(可选)添加文本追加到每个链接,默认值None
- before_page_number – (字符串)(可选)在页码前显示的字符串,默认值 None
- after_page_number – (字符串)(可选)在页码后显示的字符串,默认值 None
使用示例:
更改上下页的展示方式
- <?php echo paginate_links('prev_text=上一页&next_text=下一页');?>
每个参数直接加 & 分割, = 号后面的为参数内容。如果 = 号后面参数内容为空,则表示为空。
评论分页
在评论中则常用paginate_comments_links()
,由于是返回值,所以不需要 echo 。
- <?php paginate_comments_links( $args ) ?>
对于 $args ,评论分页既具有默认分页的全部参数,也具有额外的一些参数,值得注意的是,额外的参数会覆盖默认参数。
- <?php $args = array(
- 'base' => add_query_arg( 'cpage', '%#%' ),
- 'format' => '',
- 'total' => $max_page,
- 'current' => $page,
- 'echo' => true,
- 'add_fragment' => '#comments'
- );?>
使用示例:
- <?php paginate_comments_links('prev_text=上一页评论&next_text=下一页评论') ?>
完毕!