如何通过相关帖子的自定义字段过滤WP_Query结果?

时间:2019-06-05 23:51:44

标签: wordpress advanced-custom-fields

我有两种帖子类型:

  1. 场地
  2. 评论

“场地张贴类型”包含以下ACF自定义字段:

  • 地区
  • 子区域

评论帖子类型包含一个ACF自定义字段:

  • 地点(即发布对象-选择字段)

我需要显示地点在特定区域和/或子区域中的所有评论。

使用WP_Query是否可以完成此操作?还是我需要进行精美的数据库调用?

这是我最初认为可行的方法,但似乎无法将post对象的自定义字段作为meta_query获取。

$args = array(
  'post_type' => 'review',
  'posts_per_page' => 18,
  'paged' => $paged,
  'meta_key' => 'venue',
  'meta_query' => array(
     array(
       'key' => 'region',
       'value' => 'napa-valley'
     )
   )
);


1 个答案:

答案 0 :(得分:3)

我认为您需要在这里进行2次循环,首先使用区域元查询遍历各个场所(您也可以只使用get_posts()或get_pages()代替WP_Query) 例如

'meta_query' => array(
    array(
        'key' => 'region',
        'value' => 'napa-valley'
        )
)

然后,您可以将特定区域中场地的ID推入阵列

array_push($venue_ids, $post->ID);

然后,您可以在第二个循环中使用$ venue_ids数组,该数组将使用元查询遍历整个评论,以将您的第一个循环ID的场所与在评论页面中选择的帖子对象ID相匹配。

'meta_query' => array(
    array(
        'key' => 'venue',
        'value' => $venue_ids
        )
)

让我知道这是否有帮助,如果您认为这对您有用,并且如果我没有正确解释或您需要帮助,我可以提供进一步的帮助。