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

我有一个运行良好的WP_Query:

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

但是当我想搜索多个meta_keys时,我尝试了’array’ – 语法:

$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”的产品,第二种方式忽略元查询数组.
但为什么?

最佳答案 如评论中所述,您错误地使用了WP_Query.没有大错,但是如果你经历了
Codex for WP_Query,你会注意到meta_query数组在没有meta_前缀的情况下使用.

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

点赞