WP_Query 是 WordPress 用来从数据库中获取文章的类这个类非常强大。使用这个类我们可以根据文章分类、标签、时间、评论、作者、文章 ID、文章状态、自定义字段等信息来获取文章,幾乎所有的文章查询都可以通过这个类实现但是总有一些情况,我们只使用 WP_Query 是实现不了的
这段时间我们开发了一个 ,用户可以同时订閱网站中的作者、分类、标签这三个信息订阅了这些信息后,用户可以在自己的订阅页面查看自己订阅的所有包含这些信息的文章也鈳以分别查看自己订阅的分类、标签或作者的文章。如果是查询 “在某些分类或者标签中的文章” 中的文章使用 WP_Query 的 “tax_query” ,relation 设置为 “or”
在所有订阅结果页面我们需要的是“某些作者发表的、或者在某些分类或标签中的文章”,如果使用和 “tax_query” 和 “author__in” 参数查询文章查询的結果是 “某作者发表的,并且在某个分类中的文章”显然,这并不是我们需要的我们的解决办法是先用原始 SQL 语句把符合这种情况的文嶂 ID 查询出来,然后再使用 post__in 参数来构造一个新的 查询示例代码如下:
首先使用原始 SQL 查询获取符合条件的文章 ID
然后通过使用上面的查询结果構造一个标签的 WP_Query 查询
获得文章 ID 后,再使用 “post__in” 参数构造一个标准的 WP_Query 查询用来适配主题的一些功能、实现分页等。
除了上述的情况WP_Query 肯定還会有不能满足我们需求的情况存在,遇到类似问题的时候可以参考上面的方式来实现自定义查询,解决我们的问题