-2

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

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

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

当我查看页面时,我没有看到任何结果,并且浏览器的右侧栏继续缩小。我知道代码会创建一个无限循环。我哪里错了?

谢谢

4

3 回答 3

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 法典以获取更多详细信息。http://codex.wordpress.org/Class_Reference/WP_Query#Parameters

于 2012-07-26T09:59:43.560 回答
0

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

于 2012-07-26T09:56:23.403 回答
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; ?> 
于 2012-07-26T09:55:28.010 回答