WP_Query with MetaQuery issue

时间:2015-07-17 作者:Nicholas Rowe

当我试图将四个不同的meta\\u查询值传递给我的WP\\u查询时,我遇到了一个相当奇怪的问题。

下面是我的WP\\U查询搜索示例。请记住,如果我自己删除并测试这些meta\\u查询中的每一个,它们都可以正常工作。就在他们四岁的时候,我没有得到任何结果。即使我将这些值留空,我的查询中仍然没有收到任何帖子!

$v_args = array(
    \'post_type\'     =>  \'loads_available\',
    \'s\'             =>  "Post Name", 
    \'meta_query\'    =>  array(
      array(
            \'key\'     => \'type_of_load\',
            \'value\'   => "Frozen",
            \'compare\' => \'=\',
          ),
        array(
            \'key\'     => \'number_of_pallets\',
            \'value\'   => 2,
            \'compare\' => \'>=\',
            \'type\' => \'NUMERIC\'

          ),
        array(
            \'key\'     => \'type_of_trailer_required\',
            \'value\'   => "Trailor",
            \'compare\' => \'=\',
          ),
          // ^ problem
        array(
            \'key\' => \'euro_pallets\',
            \'value\' => "Yes",
            \'compare\' => \'=\'

            )
        )
    );

    $loadsAvailableQuery = new WP_Query( $v_args );
现在我想说清楚,这些meta\\u查询值在单独的基础上工作得很好,例如,当我开始尝试将它们相互结合使用时。

搜索查询将是:

岗位名称:“岗位名称”装载类型:“冻结”托盘数量:5所需拖车类型:“拖车”欧洲托盘:“是”

这不会给我任何结果,即使我确信有符合标准的帖子。感觉我可能在查询中遗漏了一些东西,我读到了关于使用关系的内容,但默认为“OR”-我认为这是正确的值。

我的代码中是否有任何常见的误解或明显的缺陷,我在这里看不到?

非常感谢您的回复。

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

您可能需要尝试添加\'RELATION\' => 参数添加到元查询数组中,以便包含所有元值。类似这样:

    $v_args = array(
    \'post_type\'     =>  \'loads_available\',
    \'s\'             =>  "Post Name", 
    \'meta_query\'    =>  array(
      \'relation\' => \'AND\',
      array(
            \'key\'     => \'type_of_load\',
            \'value\'   => "Frozen",
            \'compare\' => \'=\',
          ),
        array(
            \'key\'     => \'number_of_pallets\',
            \'value\'   => 2,
            \'compare\' => \'>=\',
            \'type\' => \'NUMERIC\'

          ),
        array(
            \'key\'     => \'type_of_trailer_required\',
            \'value\'   => "Trailor",
            \'compare\' => \'=\',
          ),
          // ^ problem
        array(
            \'key\' => \'euro_pallets\',
            \'value\' => "Yes",
            \'compare\' => \'=\'

            )
        )
    );

    $loadsAvailableQuery = new WP_Query( $v_args );
根据您的用例,您可能需要根据用户查询设置一个变量来切换查询中的关系参数。

注意:关系参数也可以设置为\'OR\'.

签出WP_Query codex

结束

相关推荐

使用新的WP-Query()从循环中过滤后期格式;

嗨,我目前正在为我的博客构建一个主题。下面的代码指向最新的帖子(特色帖子)。因为这将有一个不同的风格比所有其他职位。然而我想过滤掉帖子格式:链接使用我在循环中定义的WP查询,因为它给我带来了更多的灵活性。我该怎么做呢? <?php $featured = new WP_Query(); $featured->query(\'showposts=1\'); ?> <?php while ($featured->have_post