我正在使用目录中的几种产品的WooCommerce订阅插件,这些插件既可以作为单独产品也可以作为订阅产品使用,并且正在编写自定义模板页面以查询可以作为订阅使用的产品。我的查询在下面,一切看起来都不错,但是由于某种原因,它无法正常工作。谁能看到这里有什么问题吗?
*请注意,如果我删除“ tax_query”,则会按预期返回所有咖啡产品,但是当我尝试通过tax_query限制时,不会返回任何产品(是的,我在咖啡类别中有订阅产品)。
$args = array(
'post_type' => 'product',
'posts_per_page' => -1,
'product_cat' => 'coffee',
'tax_query' => array( // builds the taxonomy query
array(
'taxonomy' => 'product_type',
'field' => 'name',
'terms' => 'subscription',
),
),
);
$loop = new WP_Query( $args );
if ( $loop->have_posts() ) {
while ( $loop->have_posts() ) : $loop->the_post();
wc_get_template_part( 'content', 'product' );
endwhile;
} else {
echo __( 'No products found' );
}
wp_reset_postdata();
答案 0 :(得分:2)
您也需要为产品类别创建一个“ tax_query”,为避免此问题的发生,is deprecated since WordPress version 3.1建议使用“ tax_query”。因此,在您的代码中:
$loop = new WP_Query( array(
'post_type' => 'product',
'posts_per_page' => -1,
'post_status' => 'publish',
'tax_query' => array( // builds the taxonomy query
'relation' => 'AND',
array(
'taxonomy' => 'product_cat',
'field' => 'slug',
'terms' => 'coffee',
),
array(
'taxonomy' => 'product_type',
'field' => 'name',
'terms' => 'subscription',
)
)
) );
if ( $loop->have_posts() ) {
while ( $loop->have_posts() ) : $loop->the_post();
wc_get_template_part( 'content', 'product' );
endwhile;
} else {
echo __( 'No products found' );
}
wp_reset_postdata();
应该可以。