Исключить сообщения определенного типа post_type

Я создал "коллекцию" 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"

Исключить сообщения определенного типа post_type

Я думаю, вы сбиваете себя с толку тем, как вы назвали свои переменные. Попробуйте $ terms = get_terms ('style'); чтобы получить все термины в таксономии «стиль». Вы получаете термины, а не сообщения, и типы сообщений не должны иметь ничего общего с get_terms, кроме терминов, которые могут быть присвоены любому идентификатору post_type, который позволяет это настроить post_type.

anmari 06.07.2018 13:20

Возможно, ваш вопрос заключается в том, как получить термины, которые назначаются сообщениям в продукте типа сообщений и не назначаются сообщениям коллекции типов?

anmari 06.07.2018 13:24
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
2
205
2

Ответы 2

Фрэнсис, код в настоящее время извлекает «термины», а не сообщения, поэтому вы получаете больше, чем хотите. Если вы хотите получать сообщения (а не термины), используйте 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 сделал свое дело

другая проблема в том, что он скрывается, когда он пуст, мне нужно показать все, даже пустые

Другие вопросы по теме