我有一个名为“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\'
),
一切正常。我从“产品”自定义帖子类型中获取所有帖子。
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\'
);
希望有帮助!