TAX_QUERY返回所有帖子,而不是WP_QUERY中的选择性帖子

时间:2019-08-06 作者:iSaumya

What I am trying to do

嗨,在我的网站上,我有一个自定义的帖子类型,叫做projects, 然后,我为我的projects 调用的帖子类型project_catagories. 现在,在我的项目存档页面(其中显示所有项目)中,我有一个名为按类别浏览的部分,当用户单击类别名称时,应该显示该类别下的项目。

现在,为了显示单击类别下的项目,我创建了一个名为taxonomy-project_catagories.php 显示每个项目类别项目。现在在该文件中,我首先使用get_term_by() 获取term_id 按以下方式显示该页面:

$term = get_term_by( \'slug\', get_query_var( \'term\' ), get_query_var( \'taxonomy\' ) );
那我就通过了term_id 给我的WP_Query() 要获取该类别下的项目列表,请执行以下操作:

$args = array(
  \'numberposts\'  => -1,
  \'post_type\'    => \'projects\',
  \'tax_query\'    => array (
    \'taxonomy\' => \'project_catagories\',
    \'field\'    => \'term_id\',
    \'terms\'    => $term->term_id
  )
);

$the_project_cat_query = new WP_Query($args);
最后,我循环并显示项目。

Problem:

现在的问题是不管怎样term_id 正在传递给WP_Query(), 它显示了所有类别下的所有项目。我知道在这个论坛和stack overflow上有很多类似的问题,我已经检查过了,但没有一个对我有帮助。我甚至检查过WP_Quey 但仍然无法了解发生了什么。所以,任何帮助都会非常有用。

How I tested it

我已经在一个项目类别下创建了一个项目,因此从技术上讲,什么时候将在该项目类别页面上,那么只有它应该显示项目详细信息,对于其他页面,它应该显示为空白,因为该项目类别下没有类别。

我甚至尝试手动输入term_id, 检查field 值到slug 然后手动输入段塞。在所有情况下,结果都完全相同。

任何回应都会很有帮助。

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

Taxonomy Parameters

Important Note: tax_query 需要array 共个税务查询参数arrays (它需要一组数组)。

此构造允许您通过使用第一个(外部)数组中的关系参数来查询多个分类法,以描述分类法数组之间的布尔关系。

在里面\'tax_query\' 您应该添加数组的数组(see in Codex):

\'tax_query\'    => array (
    array(
        \'taxonomy\' => \'project_catagories\',
        \'field\'    => \'term_id\',
        \'terms\'    => $term->term_id
    )
)

相关推荐

Display Custom Taxonomy names

我正在尝试显示自定义帖子类型的自定义分类法。因此,此分类法特定于此自定义帖子类型。不幸的是,我无法让它们显示出来。这是我在函数中的代码。php注册自定义分类法:add_action(\'init\', \'products_categories\', 0); function products_categories(){ $labels = array (\'name\' => _x(\'Product Categories\',\'taxonomy general nam