类别Foreach一直在循环?

时间:2012-02-14 作者:user1178152

我正在使用以下代码获取一个类别的所有子类别,并显示子类别的子帖子。

<?php
$cats = get_categories( \'child_of=\'.get_query_var( \'cat\' ) );

foreach ( $cats as $cat ) :

    $args = array(
        \'posts_per_page\' => 3, // max number of post per category
        \'category__in\'   => array( $cat->term_id )
    );
    $my_query = new WP_Query( $args ); 

    if ( $my_query->have_posts() ) :
        echo \'<h3>\'.$cat->name.\'</h3>\';
        ?>

        <?php while( $my_query->have_posts() ) : $my_query->the_post(); ?>
            <a href="<?php the_permalink(); ?>"><?php the_title(); ?></a>
            <br />  
        <?php endwhile; ?>

    <?php else : ?>
        No Posts for <?php echo $cat->name; ?>
    <?php endif; ?>
<?php endforeach; ?>
我想获得这个输出。

 Cat Child 1
 -Post1 Child 1
 -Post2 Child 1
 -Post3 Child 1
 -So on... .

 Cat Child 2
 -Post1 Child 2
 -Post2 Child 2
 -Post3 Child 2
 -So on... .
但事实并非如此,这两个儿童类别都在反复出现。有人能告诉我问题出在哪里吗?这是我现在的输出。

 Cat Child 1
 -Post1 Child 1
 -Post2 Child 1
 -Post3 Child 1
 -So on... .

 Cat Child 2
 -Post1 Child 2
 -Post2 Child 2
 -Post3 Child 2
 -So on... .
 Cat Child 1
 -Post1 Child 1
 -Post2 Child 1
 -Post3 Child 1
 -So on... .

 Cat Child 2
 -Post1 Child 2
 -Post2 Child 2
 -Post3 Child 2
 -So on... .
 Cat Child 1
 -Post1 Child 1
 -Post2 Child 1
 -Post3 Child 1
 -So on... .

 Cat Child 2
 -Post1 Child 2
 -Post2 Child 2
 -Post3 Child 2
 -So on... .
直到它循环9次并停止。问题是什么?

1 个回复
SO网友:Arvind Pal

   <?php  $cats = get_categories(\'child_of=\'.get_query_var(\'cat\')); 

   foreach ($cats as $cat) :

  $args = array(
  \'posts_per_page\' => 3, // max number of post per category
  \'category__in\' => array($cat->term_id)
   );
   $my_query = new WP_Query($args); 

    if ($my_query->have_posts()) : 
    echo \'<h3>\'.$cat->name.\'</h3>\';

    while ($my_query->have_posts()) : $my_query->the_post(); ?>     
    <?php /*general loop output; for instance: */ ?>
    <a href="<?php the_permalink() ?>"><?php the_title(); ?></a>    <br />  

    <?php endwhile; ?>

    <?php else : 
    echo \'No Posts for \'.$cat->name;                
    endif; 
    wp_reset_query();
    endforeach; ?>
使用wp_reset_query(); 用于重置WP\\U查询的endforeach之前。

结束

相关推荐

WP_LIST_CATEGORIES()排除除一个类别外的所有类别

有没有办法排除除一个类别之外的所有类别?我想显示一个类别和它的子类别作为下拉菜单,但管理员可能会添加更多的子类别,所以我不想限制他们可以放在那里的唯一ID。所以我想排除除1及其子类别之外的所有类别。wp\\u list\\u categories()是否可以这样做?