导语:当我们使用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, //当前页数 ) )
结束
你学会了吗?示例代码是要根据自己的情况来修改的,叶子没有写循环内的输出代码。