Цикл Foreach возвращает более одного элемента при запросе таксономии

Я запрашиваю термины таксономии, а затем перечисляю записи, которые находятся на этих условиях. Таксономия – это, в основном, категория для персонализированного типа сообщений, а в ней есть категории.

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

Я не мог понять, почему он дублировал сообщения, пока я случайно не попытался получить значение переменных для описания категории до того, как он был даже объявлен, когда я увидел, что он не получил значения описаний для первой категории, но сделал второй один, я знал, что он сразу получает несколько рубрик для одного цикла foreach. Возможно ли это? Может кто-нибудь сказать мне, в чем моя проблема, и помочь мне исправить проблему?

<?php $myterms = get_terms('menu-category', 'orderby=none&hide_empty'); foreach ($myterms as $term) : ?> <h3><?php echo $term->name; ?></h3> <?php $term_name = $term->slug; $term_desc = $term->description; if( $term_desc ) { ?> <div class="menu-intro"><p><?php echo $term_desc; ?></p></div> <?php } else { ?> <div class="menu-intro"></div> <?php } $args = array( 'post_type' => 'restaurant-menu', 'taxonomy' => $term_name, ); // assigning variables to the loop global $wp_query; $wp_query = new WP_Query($args); // starting loop posting only while ($wp_query->have_posts()) : $wp_query->the_post(); ?> <ul class="dishes"> <li> <h4 class="menu-item"><?php the_title(); ?></h4> <p class="menu-description"><?php the_content(); ?></p> <?php $price_value = get_field( "show_price" ); if( $price_value == "Yes") { ?> <i class="price">$ <?php $price_value ?></i> <?php } ?> </li> <?php endwhile; endforeach; ?>