在 Wordpress 中,可以为循环创建自己的 WP 查询。一个例子是这样的:

$my_query = new WP_Query(array('post_parent' => 3, 'post_type' => 'page'));

另一个例子是这样的:
$my_query = new WP_Query(array('cat' => 1, 'post_type' => 'post'));

我想要一个循环显示来自同一循环的页面和帖子。

现在我的问题。是否可以将这两个对象合二为一?如果是,如何?我对创建两个不同的循环不感兴趣。

最佳答案

您想要的将转换为 SQL 中的 WHERE ... OR ... 条件或 UNION,例如。

SELECT * FROM posts WHERE (post_parent = 3 AND post_type = 'page')
  OR (cat = 1 AND post_type = 'post')

或者
SELECT * FROM posts WHERE post_parent = 3 AND post_type = 'page'
  UNION
SELECT * FROM posts WHERE cat = 1 AND post_type = 'post'

从查看源代码和 the way WP constructs SQL from WP_Query() 来看,我认为这是不可能的:查询变量没有 OR'ing 或 UNION。

我唯一想到的是编写一个实现 posts_where 过滤器的插件(应用于返回 post 数组的查询的 WHERE 子句)。您可以使用不同的 WP 查询调用此插件,该插件将获取它们的 WHERE 部分并可以将它们 OR 放在一起。

另见 http://codex.wordpress.org/Custom_Queries

关于Wordpress - 多个 WP Query 对象合二为一?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1346226/

10-16 11:39