正在尝试运行一个查询,该查询将拉取:
给我4篇不在sticky\\u贴子中且具有(my_featured_post = 1 AND photo-image_post_id > 0) OR (my_featured_post = 1 AND photo-image_page_id > 0)
或者如果做起来更容易-不知怎么说(my_featured_post = 1) AND (photo-image_page_id>0 OR photo-image_post_id >0)
我试过了
$query = new WP_Query(
array(
\'meta_query\' => array(
\'relation\' => \'OR\',
array(
\'key\' => \'my_featured_post\',
\'value\' => \'1\',
\'compare\' => \'=\'
),
array(
\'key\' => \'photo-image_post_id\',
\'value\' => \'0\',
\'compare\' => \'>\'
),
array(
\'key\' => \'my_featured_post\',
\'value\' => \'1\',
\'compare\' => \'=\'
),
array(
\'key\' => \'photo-image_page_id\',
\'value\' => \'0\',
\'compare\' => \'>\'
),
),
\'post_type\' => array( \'post\', \'page\' ),
\'post__not_in\' =>get_option(\'sticky_posts\'),
\'posts_per_page\'=> 4,
)
);
这似乎不起作用。我该怎么办?
最合适的回答,由SO网友:eddiemoya 整理而成
我认为您无法在单个查询中完成此操作-您似乎需要的是条件之间的多个关系,而且由于当前的工作方式,meta\\u query不允许您这样做。我在google上搜索了一下,发现其他人说没有,但我也研究了核心代码并查看了WP\\u Meta\\u查询类。我可以肯定地告诉你,你不能以你需要的方式创建多重关系。
我的建议是运行一个查询,只需使用my_featured_post = 1
, 作为元查询,然后获取这些帖子的所有ID。然后运行另一个查询,将这些ID传递给post__in
- 并运行一个元查询photo-image_page_id>0 OR photo-image_post_id >0