Meta Query with AND & OR?

时间:2011-12-06 作者:Olsi

我正在尝试对中的一些帖子进行筛选WP_Query, 但我似乎没有得到正确的条件。基本上,我想做的是获取具有自定义字段的帖子event_data (按此字段排序)并在这些帖子中仅选择填写了其中一个其他字段的帖子event_doc1, event_doc2, event_doc3, main_doc.

代码如下所示。

$metaCondition = array(
            \'relation\' => \'OR\',
            array(
                \'key\' => \'main_doc\',
                \'value\' => 0,
                \'compare\' => \'!=\',
                \'type\' => \'NUMBER\'
            ),
            array(
                \'key\' => \'event_doc1\',
                \'value\' => 0,
                \'compare\' => \'!=\',
                \'type\' => \'NUMBER\'
            ),
            array(
                \'key\' => \'event_doc2\',
                \'value\' => 0,
                \'compare\' => \'!=\',
                \'type\' => \'NUMBER\'
            ),
            array(
                \'key\' => \'event_doc3\',
                \'value\' => 0,
                \'compare\' => \'!=\',
                \'type\' => \'NUMBER\'
            )
        );

        $query = array(
            \'numberposts\' => 4, 
            \'orderby\' => \'meta_value\',
            \'meta_key\' => \'event_data\', 
            \'order\' => \'ASC\', 
            \'meta_query\' => $metaCondition
        );
提前感谢大家!

1 个回复
最合适的回答,由SO网友:Otto 整理而成

对不起,这样不行。“简单”元参数作为一个整体转换为meta\\u查询的一部分。所以这不是一个单独的东西,你的OR关系也适用于它。

因此,在常规查询系统中,您的查询是不可能的,因为您希望将AND与ORs混合使用(您希望具有event\\u数据的项目与一组其他项目之间具有ORs)。

您将不得不求助于自定义SQL或重新考虑您的设计。

结束

相关推荐

FireBug:WordPress管理面板中的jQuery出现问题

我正在尝试制作我的第一个插件,但我遇到了firebug的问题。当我在WP管理面板中使用firebug控制台时,它不能正常工作。例如,当我使用选择器$(“#wpbody”)时,控制台返回null值。WP面板包括jQuery库,我不知道为什么firebug会出错。有什么建议或建议吗?使用WP 3.1.3和3.2.1测试谢谢,马科斯。