在wordpress中查询post类型的文章分页是没问题的, 但是查询page和自定义类型的分页会出现404问题, 我们就来解决这个问题.
必备概念
-
wordpress可以自定义许多文章类型, wordpress自带的有就是post和page类型.
-
当我们向wordpress发出请求时, wordpress会解析我们的请求参数, 然后把这些参数给WP_Query对象进行查询, 最后把查询结果保存在一系列变量中, 而我们使用
the_title()
等函数的时候, 就是获取这些变量的值. -
wordpress自带很多事件, 我们可以把函数注册到这些事件中, 来修改wordpress执行的某些过程.
问题原因
当我们查询post类型文章的分页是不会出问题的, 但当我们查询自定义类型或page类型文章分页时出现404问题, 很显然是wordpress的WP_Query查询结果出了问题, 而wordpress的查询是通过我们传递的参数进行的, 那么追根溯源一定是我们参数有问题.
我们以http://q5.abc/category/md5gj/page/2
做举例, md5gj分类下面全是page类型的文章, 下图是打印出的WP_Query对象内容, 其中最关键的就是query
参数, 里面包含了我们请求的查询条件:
由上图可知我们的query只包含了paged=2
和category_name=md5gj
这两个参数, 但如果大家去看WP_Query的文档就知道, 还有一个叫做post