循环创建无限循环

时间:2012-07-26 09:50:43

标签: php wordpress

我写了这个PHP代码来放一个wordpress页面模板:

<?php 
query_posts('showposts=10&cat=7'); 
while (have_posts()) : the_post(); 
?> 

<li class="img-slider"> 
    <?php the_content(); ?> 
</li> 
<?php endwhile; ?> 

当我查看页面时,我看不到任何结果,浏览器的右栏继续减少。我知道代码创建了一个无限循环。 我错在哪里?

由于

3 个答案:

答案 0 :(得分:1)

首先,您不应该使用query_posts。它对于简单的循环来说太具有侵略性,并且与整个WP_Query混淆。 showposts也应为posts_per_page

其次,如果没有更多上下文,很难衡量这个问题是什么。也许将整个页面粘贴,并将其编辑到您的问题中。我的猜测是一个循环中的循环,应该停在100个帖子。 (10 X 10)但如果它在任何其他地方重置,如果很可能无限!

使用此代码来创建循环:

$custom_query = new WP_Query( 'posts_per_page=10' );

if($custom_query->have_posts()) :

    while ( $custom_query->have_posts() ) : $custom_query->the_post();

        //global $post; // for stuff like $post->post_name

        // Post stuff here
        // the_title();

    endwhile;

endif;
// Reset Post Data
wp_reset_postdata();

查看WordPress codex了解更多详情。 http://codex.wordpress.org/Class_Reference/WP_Query#Parameters

答案 1 :(得分:0)

您应该在循环中使用if语句:

<?php 
query_posts('showposts=10&cat=7'); 
if ( have_posts() ): while ( have_posts() ) : the_post(); 
?> 

<li class="img-slider"> 
    <?php the_content(); ?> 
</li> 
<?php endwhile; endif; ?> 

答案 2 :(得分:0)

如果没有进一步的信息,我会说在while语句的每个循环中,函数返回数据的第一行?因此,每次while循环执行时,您都会再次调用该函数,它会一遍又一遍地返回相同的行,而不会实际迭代结果集。