你可能会这样做
$args = array(
\'post_type\' => \'product\',
\'product_cat\' => get_queried_object()
);
$query = new WP_Query( $args );
$termsInPosts = array();
if ( $query->have_posts() ) {
while( $query->have_posts() ) : $query->the_post();
$postTerms = wp_get_post_terms(get_the_ID(), \'brands\', array(\'fields\' => \'term_id\'));
foreach ($postTerms as $postTerm)
if (!in_array($postTerm->term_id, $termsInPosts))
$termsInPosts[] = $postTerm->term_id;
endwhile;
}
$marcas_terms = get_terms([
\'taxonomy\' => \'brands\',
\'include\' => $termsInPosts
]);
foreach ($brands_terms as $brand_term) {
<input type="checkbox" id="<?php echo $brand_term->term_id; ?>" name="marca" value="<?php echo $brand_term->term_id; ?>">
<label for="<?php echo $brand_term->term_id; ?>"><?php echo $brand_term->name; ?></label>
}
if ( $query->have_posts() ) {
while( $query->have_posts() ) : $query->the_post();
get_template_part("templates/product-content-category");
endwhile;
}
wp_reset_postdata();
您所做的只是在前面运行循环,获取帖子中术语的id,添加到数组中,然后在调用
get_terms()
您正在使用
include
仅包括找到的术语。
我还没有测试过这段代码,它是徒手编写的,但它应该可以工作,或者至少可以引导您朝着正确的方向前进。
希望这有帮助。