是否可以在META_QUERY和TAX_QUERY之间添加关系?

时间:2017-10-13 作者:Raymond

我有一些ACF字段的自定义帖子类型。我对实体的额外属性使用ACF,对实体的基本类别也使用本机wordpress分类法。因此,我需要同时使用meta\\u query和tax\\u query构建查询。它看起来像:

WP_Query {
  "meta_query" => {
    "relation" => "OR",
    [
      "key" => "rating",
      "compare" => "LIKE",
      "value" => "AA"
    ]
  },

  "tax_query" => {
    "relation" => "OR",
    [
      "taxonomy" =>"currencies",
      "field" =>"slug",
      "terms" => [
        "eur",
        "usd"
      ],
      "operator" => "IN"
    ]
  }
}
如果我只按分类法或元字段进行搜索,那么一切都很好。但如何通过分类法或元字段进行搜索(默认情况下,Wordpress使用和关系,即只有当所有子查询都返回true时,才能找到post)?一、 e.我需要在主WP\\U查询对象中添加两种类型查询之间的关系。

有什么建议吗?

1 个回复
SO网友:Milan Petrovic

对于WP\\U查询,这是不可能的。您可以在tax查询和元查询中指定关系,但是,您不能在查询中使用OR连接元查询和tax查询。

您始终可以按照您想要的方式构建SQL查询,而完全不依赖WP\\U查询来按照您想要的方式过滤帖子。或者,您可以使用两个WP\\u查询对象,一个用于meta\\u查询,另一个用于tax\\u查询,并合并结果。如果你有很多帖子,或者你需要分页,这将是一个挑战,使优化。

结束

相关推荐

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

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