【问题标题】:WP_Query same request, different syntax - one of which does not workWP_Query 相同的请求,不同的语法 - 其中一个不起作用
【发布时间】:2015-09-19 21:14:50
【问题描述】:

我有一个运行良好的 WP_Query:

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

但由于我想搜索多个元键,我尝试了 '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”的产品,第二种方法忽略了元查询数组。 但为什么呢?

【问题讨论】:

  • meta_key 更改为key 并将meta_value 更改为value,然后重试。
  • 就是这样 - 非常感谢 - 在德国有句谚语:有时你看不到森林,因为树很多 :D - 现在可以使用 ;)
  • 很高兴我能帮到你。你可以接受我的回答:)

标签: php sql wordpress


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 2017-11-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多