按多个元元素查询似乎不起作用-WordPress超时

时间:2012-07-10 作者:setterGetter

正在尝试运行一个查询,该查询将拉取:

给我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,        
   )
);
这似乎不起作用。我该怎么办?

1 个回复
最合适的回答,由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

结束

相关推荐

使用新的WP-Query()从循环中过滤后期格式;

嗨,我目前正在为我的博客构建一个主题。下面的代码指向最新的帖子(特色帖子)。因为这将有一个不同的风格比所有其他职位。然而我想过滤掉帖子格式:链接使用我在循环中定义的WP查询,因为它给我带来了更多的灵活性。我该怎么做呢? <?php $featured = new WP_Query(); $featured->query(\'showposts=1\'); ?> <?php while ($featured->have_post