Intereting Posts
Устранение данных в пользовательском почтовом типе WordPress API (wp-json) Добавить фильтр guid в приложение в режиме сетки медиа-библиотеки Отобразить конкретное имя и ссылку на проект типа Jetpack Добавление ссылки настроек плагина после активации preg_replace Удалить текст комментария в содержании Как узнать, кто изменил пароль? WordPress не принимает пароль и имя пользователя Как добавить новую вкладку в менеджер загрузки мультимедиа с помощью настраиваемого набора изображений? URL-адрес URL-адреса WordPress для динамического и настроенного URL-адреса $ query-> set ('meta_query', $ meta_query), и я удивлен! Добавить фильтр в цикл комментариев? Включите сторонние дополнения ACF с темой Как я могу разрешить пользователям регистрироваться, но не позволять им получать доступ к бэкэнду WordPress? Как отключить фильтрацию стиля в сообщении? Заказ по результатам функции с WP_query

Исключая верхний уровень от таксономии и пост-цикла

У меня есть пользовательский тип сообщения / таксономия. Я создал список, который показывает все категории и сообщения в них.

Я создал категорию верхнего уровня (таксономия), которая имеет две подкатегории. Я хочу, чтобы в моем списке отображались только категории второго уровня и записи в них. В настоящее время он выводит как подкатегории, так и их сообщения правильно, но в то же время также показывает категорию верхнего уровня и все записи в ней, даже если они не находятся непосредственно в ней.

  • Подкатегория 1

    • Сообщение 1
    • Сообщение 2
  • Подкатегория 2

    • Сообщение 3
    • Сообщение 4
  • Категория верхнего уровня

    • Сообщение 1
    • Сообщение 2
    • Сообщение 3
    • Сообщение 4

Как я исключаю категорию верхнего уровня и ее список полностью? Например

  • Подкатегория 1

    • Сообщение 1
    • Сообщение 2
  • Подкатегория 2

    • Сообщение 3
    • Сообщение 4

Код, который я использовал, приведен ниже.

Ref: Цикл через пользовательские таксономии и отображаемые сообщения

<?php $custom_terms = get_terms('service_categories'); foreach($custom_terms as $custom_term) { wp_reset_query(); $args = array('post_type' => 'services', 'tax_query' => array( array( 'taxonomy' => 'service_categories', 'field' => 'slug', 'terms' => $custom_term->slug, ), ), ); $loop = new WP_Query($args); if($loop->have_posts()) { echo '<h2>'.$custom_term->name.'</h2>'; while($loop->have_posts()) : $loop->the_post(); $title = get_the_title(); $url = get_permalink(); $serviceicon = get_field( 'select_icon' ); ?> <div class="left-list2-box"> <a href="<?php echo $url; ?>"> <div class="left-list2-icon"> <div class="list-services-icons <?php echo $serviceicon ?>"></div> </div> <div class="left-list2-title"> <?php echo $title; ?> </div> </a> </div> <?php endwhile; } } ?> 

Solutions Collecting From Web of "Исключая верхний уровень от таксономии и пост-цикла"

Для справки других мне удалось получить помощь в этом с помощью форумов поддержки WordPress.

Вы можете указать второй параметр в get_terms, чтобы исключить определенные идентификаторы термина:

$ term_args = array ('exclude' => array (5, 8)); $ custom_terms = get_terms ('service_categories', $ term_args);

В приведенном выше случае мы исключаем условия с идентификаторами 5 и 8.

Ссылка: https://wordpress.org/support/topic/excluding-top-level-from-taxonomy-and-post-loop?replies=3

Я добавил код выше перед foreach, и он работал отлично.