使用作为数组的meta_key过滤query_posts

时间:2014-07-16 00:27:25

标签: php wordpress

在我的一个自定义帖子类型中,我有一个自定义字段,可以从其他自定义帖子类型获取其值,并在下拉菜单中显示它们,这些内容在PODS中称为关系自定义字段。

当您选择下拉菜单中的一个项目,然后显示它时,它会返回一个数组。

我需要做的是通过其中一个自定义字段数组键过滤此CPT中的帖子。

$industry = get_post_meta(get_the_ID(), 'industry', true);
var_dump($industry);

结果:

array(37) {
  ["ID"]=>
  string(2) "94"
  ["post_author"]=>
  string(1) "1"
  ["post_date"]=>
  string(19) "2014-05-20 18:30:28"
  ...
}

我需要通过industry的ID值过滤此帖子 我尝试做的是修改$args的{​​{1}}:

query_posts()

但当然这不起作用,并给了我一个错误。

请记住,我想使用WordPress'分页,所以我不能在循环中运行条件语句来从档案页面中删除不需要的帖子。

1 个答案:

答案 0 :(得分:0)

您正在传递一个包含您的值的数组,其中包含' ID'而不是传递钥匙的价值' ID'在您的$industry_ID变量中。这应该是$industry_ID['ID']

$args = array(
  'post_type' => 'industries_contacts',
  'meta_query' => array(
    array(
      'key' => 'industry',
      // you want to pass in the ID element of the $industry_ID array.
      'value' => $industry_ID['ID'],
      'compare' => '='
    )
  ),
  'posts_per_page'   => 10, 
  'paged' => get_query_var('paged'),
);
query_posts($args);