-2

WordPress ページ テンプレートに配置するために、次の PHP コードを作成しました。

<?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

第 2に、これ以上のコンテキストがないと、この問題が何であるかを判断するのは困難です。おそらく、ページ全体を貼り付けて、質問に編集してください。私の推測では、ループ内のループであり、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

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 に答える
0

詳細情報がなければ、whileステートメントの各ループで、関数はデータの最初の行を返していると思いますか? そのため、while ループが実行されるたびに、関数を再度呼び出すことになり、実際には結果セットを反復せずに同じ行を何度も返します。

于 2012-07-26T09:56:23.403 に答える