用于获取自定义分类法下的帖子的WP_Query不起作用

时间:2017-01-23 13:32:30

标签: php wordpress custom-post-type shortcode

我正在尝试从自定义分类中获取自定义帖子类型。根据此处的文档和其他类似问题,我做了以下内容:

$query = new WP_Query( array(
  'post_type' => 'job',
  'tax_query' => array(

     'taxonomy' => 'location',
     'field' => 'slug',
     'terms' => 'california'
   )
)

但问题是这个查询获得了所有帖子,而不仅仅是“加利福尼亚”分类标准下的帖子。

如果需要更多信息,我可以提供更多代码来编辑问题。

提前致谢!

3 个答案:

答案 0 :(得分:2)

尝试这样的事情:

    $posts_array = get_posts(
        array(
            'posts_per_page' => -1,
            'post_type' => 'job',
            'tax_query' => array(
                array(
                    'taxonomy' => 'location',
                    'field' => 'slug',
                    'terms' => 'california',
          )
        )
    )
);

答案 1 :(得分:1)

你错过了一个数组。 tax query参数可用于多个分类。它接受一个数组数组。

  

重要说明:tax_query采用一系列税务查询参数数组   (它需要一组数组)。此构造允许您查询   通过使用第一个中的关系参数来实现多个分类   (外部)数组来描述之间的布尔关系   分类数组。

https://codex.wordpress.org/Class_Reference/WP_Query#Taxonomy_Parameters

改变这个:

'tax_query' => array(

     'taxonomy' => 'location',
     'field' => 'slug',
     'terms' => 'california'
   )

对此:

'tax_query' => array(
    array(
        'taxonomy' => 'location',
        'field'    => 'slug',
        'terms'    => 'california',
    ),
),

答案 2 :(得分:-1)

在你的while循环中,记得切换

<?php

  while ( $query->have_posts() ) {
     $query->the_post();   
      // Important line, especially if you have
      //multiple WP_Query  invocations

     DO WHAT YOU WANT HERE

  wp_reset_postdata();
  }

 ?>