我正在查询分类术语,然后列出这些术语下的帖子。分类法基本上是自定义帖子类型的一个类别,其中的术语是类别。
我认为这是不可能的,但我有一个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;
?>