Tax_Query在模板中不起作用

时间:2012-10-12 作者:Sahil Mepani

我有一个名为“product”的自定义帖子类型,其中注册了分类法“product type”。

我想从自定义帖子类型显示特定分类法中的所有帖子。在我的例子中,我想显示来自“产品”帖子类型的所有帖子,其中包含一个术语“软件”。

    <?php $args = array( 
        \'post_type\' => \'product\', 
        \'tax_query\' => array(
            \'taxonomy\' => \'product-type\',
            \'terms\' => array(\'software\'),
            \'field\' => \'slug\'
        ),
        \'posts_per_page\' => 9, 
        \'orderby\' => \'menu_order\', 
        \'order\' => \'ASC\' 
    );

    $query = new WP_Query( $args ); ?>

    <ul class="list-products clearfix">

    <?php while ( $query->have_posts() ) : $query->the_post(); ?>
这没有给我带来任何结果。它是空的。

但如果我把整个tax_query 从…起$arg

\'tax_query\' => array(
    \'taxonomy\' => \'product-type\',
\'terms\' => array(\'software\'),
\'field\' => \'slug\'
),
一切正常。我从“产品”自定义帖子类型中获取所有帖子。

2 个回复
SO网友:anu

如果你看看documentation for WP_Query taxonomy parameters, 您将看到tax\\u查询是一个数组数组。

因此:

\'tax_query\' => array(
    array(
        \'taxonomy\' => \'product-type\',
        \'terms\' => array(\'software\'),
        \'field\' => \'slug\'
     )
)

SO网友:stefano1

tax\\u query是一个数组,也是一个id。如果您使用另一个数组来指定您的术语,您还应该指定一个运算符。因此,您的$args应该如下所示:

 $args = array( 
      \'post_type\' => \'product\', 
      \'tax_query\' => array(
         array(
           \'taxonomy\' => \'product-type\',
           \'terms\' => array(\'software\'),
           \'field\' => \'slug\',
           \'operator\' => \'IN\'
         )
       ),
      \'posts_per_page\' => 9, 
      \'orderby\' => \'menu_order\', 
      \'order\' => \'ASC\'
    );
希望有帮助!

结束

相关推荐

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

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