WP_Query相同的请求,不同的语法 - 其中一个不起作用

时间:2015-07-02 11:09:30

标签: php sql wordpress wp-query

我有一个运行良好的WP_Query:

$args = array(
'post_type' => 'product',
'meta_key'  => 'product_subtype',
'meta_value'=> 'public',
'compare'   => '='      
);

但是因为我想搜索多个meta_keys,我尝试了'array'-syntax:

$args = array(
'post_type' => 'product',
'meta_query' => array(                 
                  array(
                    'meta_key'     => 'product_subtype',
                    'meta_value'   => 'public',
                    'compare'      => '='
                      ),
                    ),                  
); 

但它不起作用 - 它给了我所有帖子'post_type'='product' - 虽然它是完全相同的请求。我不知道为什么。有人可以指出错误吗?

我按以下方式执行查询(就像在我找到的所有教程中都说的那样)

$the_query = new WP_Query( $args );
像我说的那样,第一种方式有效,我只得到“product_subtype = public”的产品,第二种方式忽略元查询数组。 但为什么呢?

1 个答案:

答案 0 :(得分:2)

正如评论中所述,您错误地使用了WP_Query。没有大错,但如果您通过Codex for WP_Query,您会注意到meta_query数组没有使用meta_前缀。

因此,如果您从查询中删除meta_前缀,它将按预期工作。