Я создал "коллекцию" post_type, и вся ее таксономия связана с post_type "product"
так что когда я это сделаю
global $wp;
$posts = get_terms( $wp->query_vars["name"]);
foreach($posts as $post): ?>
<a href = "<?php echo get_term_link( $post );?>" rel = "bookmark"><?=$post->name . " (".$post->count.")" ?> </a>
<?php endforeach;
это покажет все термины в post_type "product" в таксономии "style"
но он также показывает термины в post_type «collection» в таксономии «style»
Как я могу исключить отображение терминов в post_type "collection"
Возможно, ваш вопрос заключается в том, как получить термины, которые назначаются сообщениям в продукте типа сообщений и не назначаются сообщениям коллекции типов?






Фрэнсис, код в настоящее время извлекает «термины», а не сообщения, поэтому вы получаете больше, чем хотите. Если вы хотите получать сообщения (а не термины), используйте https://developer.wordpress.org/reference/functions/get_posts/.
Этот пример наиболее близок к тому, что вы ищете https://developer.wordpress.org/reference/functions/get_posts/#comment-2516, замените в своем post_type и taxonomy.
Я вроде как это сделал
<?php
$posts = get_terms($wp->query_vars["name"]);
$terms = get_terms($wp->query_vars["name"], array(
'hide_empty' => 0,
));
foreach( $terms as $term ) :
wp_reset_query();
$args = array('post_type' => 'product',
'tax_query' => array(
array(
'taxonomy' => $wp->query_vars["name"],
'field' => 'slug',
'terms' => $term->slug
),
),
);
$posts = new WP_Query($args);
if ( $posts->have_posts() ) : ?>
<h3><?php echo $term->name; ?> - <?php echo $posts->post_count ?></h3>
<?php endif; endforeach; ?>
так что $ posts-> post_count сделал свое дело
другая проблема в том, что он скрывается, когда он пуст, мне нужно показать все, даже пустые
Я думаю, вы сбиваете себя с толку тем, как вы назвали свои переменные. Попробуйте $ terms = get_terms ('style'); чтобы получить все термины в таксономии «стиль». Вы получаете термины, а не сообщения, и типы сообщений не должны иметь ничего общего с get_terms, кроме терминов, которые могут быть присвоены любому идентификатору post_type, который позволяет это настроить post_type.