微构网络

WordPress使用WP_Query类取数据时的分页技巧

2015-08-07 22:08 栏目:技术教程 查看(2,803)

前面我分享一篇关于wordpress根据多个自定义字段进行多字段筛选的文章,全文见《[思路+代码]WordPress实现根据多个自定义字段合并筛选数据》我发现发布出去之后有不少人看到(当然其中大多数可能还是在我们官网之外的地方看到转载的版本),很多人在一些细节上还是犯了难,其中很多人就在分页这个问题上犯难了。确实,翻页是我们必须要用到的一个方法,否则当数据多的时候那在一页全部读取出来那会带来很多问题,比如加载速度慢、凌乱感等有损于用户体验的。

而如果我们在这个地方使用网上大多数提供给大家已经写好的wordpress分页方法,那肯定是不行的,因为那种方式的前提是使用了默认读取数据的方式,而这里我们可以理解为更加高级一点儿的方式,自然那中分页方法是不能用的。其实呢,只要真正理解WP_Query的用法,就能知道怎么做了,下面也就不需要看了,所以我还是建议大家直接看官方关于这个类的介绍。(传送门《WP_Query类》),当然如果能读完并理解这类的源代码,我相信能更加炉火纯青了。

而在下面的内容,针对不想看官方原版文档,更不想自己读源代码的童鞋,其实这本身就是一个查询类,带了很多相应的参数,而实例化后得到一个数据对象。首先我们来看看上次文章中的一张图片

xxx

 

理解的童鞋都知道,在这里其实就是告诉我们约束三个字段的筛选加上某个分类ID限制(比如这里是24)。那除此之外就没有限制啦,那么如果有1000个符合条件的结果,那就全部在$wp_query这个对象里,然后输出就全部输出了。实际上,我们需要进行分页处理,比如每页10条或者20条等等。实际上这个类关于分类已经为我们提供了常用的参数。

  • nopaging布尔):将文章分页还是全部获取。默认是 False:分页
  • posts_per_page(整数):每页显示多少文章,如果设置成 –1 则不分页
  • posts_per_archive_page(整数):和 posts_per_page 是一样的,不过这个只有在当前查询是根据存档或是搜索的情况下才生效
  • offset(整数):偏移值,去掉前边几篇文章,再从后边找回来
  • paged(整数):页码,指定文章分页的当前页
  • page(整数):静态首页的页码
  • ignore_sticky_posts(布尔):是否忽略指定文章,要忽略置顶文章可以设置成 True,默认是 False

这里为了更好的说明就列举一个例子来说明这里的使用吧,比如我们要实现分页,每个页面显示20条数据,每个页面显示当前的20条数据(当然最后一页没有20条就显示实际的条数)。修改后“约束”数组$args就是如下的样子了

eee

当这里其实已经完成了我们这篇文章的目的,当然如果实际生产环境,我们还需要写分页按钮,而这一部分各有各的喜好了,有了这一部分核心代码,写分页按钮部分就是信手拈来的事情了。

转载请注明出处:WordPress使用WP_Query类取数据时的分页技巧 - 微构网络
分享:

您可能遇到的问题?

搜索微构网络的干货:

值班:15574303608 业务:在线咨询 技术:在线咨询

电话:0731-83862683 售后:在线咨询 邮箱:server@csweigou.com

地址:长沙市五一西路锦绣中环1116(五一广场平和堂对面)