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, //当前页数
							) )

结束

你学会了吗?示例代码是要根据自己的情况来修改的,叶子没有写循环内的输出代码。

发表评论

电子邮件地址不会被公开。 必填项已用*标注