我有一个运行良好的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”的产品,第二种方式忽略元查询数组。
但为什么呢?
答案 0 :(得分:2)
正如评论中所述,您错误地使用了WP_Query
。没有大错,但如果您通过Codex for WP_Query,您会注意到meta_query
数组没有使用meta_
前缀。
因此,如果您从查询中删除meta_
前缀,它将按预期工作。