小兽向大家介绍了WordPress中WP_Query查询后利用paginate_links函数来分页等相关知识,希望对您有所帮助
导语:当我们使用WP_Query查询后,如果结果只有一两条还可以直接显示,但如果超过几百条可能就需要对结果进行分页了。那么我们可以使用WordPress自带的函数paginate_links来进行分页,也可以自己写函数来进行分页。
使用场景
给客户做一个目的地的页面,上面显示每个省份的地图和城市,需要分页。
代码示例
请直接看下面的代码示例,主要的关键点有当前页、总计页数。先要获取当前页,将它放到查询参数里面,执行WP_Query后,获取总页数。
在paginate_links函数中设置total和current的参数,这个就是对应前面的总页数和当前页。
具体的paginate_links说明请参见:https://developer.wordpress.org/reference/functions/paginate_links/
$current_page = max(1, get_query_var('paged')); //当前第几页
//查询参数
$args = array_filter(array(
'orderby' => 'title',
'order' => 'ASC',
'ignore_sticky_posts' => 1 ,
'posts_per_page' => 10,
'paged' => $current_page, //当前页
));
//开始查询
$query = new WP_Query($args);
$total_pages = $query->max_num_pages; //总共多少页
while ($query->have_posts()):
$query->the_post();
//自己输出代码
endwhile;
//输出分页
echo paginate_links( array(
'prev_text' => __( 'Previous page', 'YChinaTours' ),
'next_text' => __( 'Next page', 'YChinaTours' ),
'screen_reader_text' => null,
'total' => $total_pages, //总页数
'current' => $current_page, //当前页数
) )

