在 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/