2017-01-24 7 views
1

この小さなスニペットに問題があります。基本的には、現在のリリースのカテゴリで1つの投稿を取得し、最初の3つを取得して表示するのではなく、繰り返し表示します。私はその "は逃した愚かか何かと確信しているwhile(have_posts()):the_post();同じ投稿を何度も繰り返していますか?

global $query_string; 

    query_posts(array(
    'showposts' => 3, 
    'cat' => 'current-releases' 
)); 

    echo '<div class="related-posts">'; 

    while (have_posts()) : the_post(); 
     echo '<div class="related-album">'.the_post_thumbnail('large'); 
     echo ' '.the_title(); 
     echo '</div>'; 
    endwhile; 

    echo '</div>'; 
+0

'(x)は、(X)... ENDWHILE endif'完全に冗長化されている間ならば - あなただけの' while'を必要としています。 – paxdiablo

+0

私はIfステートメントを完全に削除しましたが、問題はまだ存在しますが、クリーンアップに感謝します。 –

+0

Brandon、私はPHPやWordpressのほんの少ししか知りませんが、私はそれがあなたの問題を解決するとは思っていませんでした(そうでなければ、コメントではなく答えになりました)。私はちょうどそれがコードの清潔さについてはOCDです:-) – paxdiablo

答えて

0

オプションを配列としてフォーマットする必要がありますあなたのquery_posts:。

query_posts(array(
    'showposts' => 3, 
    'cat' => 'current-releases' 
)); 
+0

あなたの答えをありがとう。私はあなたの答えを反映させるために質問を更新しましたが、問題は依然として私の質問にあります。それは何度も同じものを何度も繰り返しています。 –

0

query_postsを使用すべきではない、私はスワップすることから始めたいです。そのアウト。そうすることによって、あなたは同様にあなたのループを更新する必要がありますことを覚えておいてください。

$related_posts = new WP_Query(array(
    'posts_per_page' => 3, 
    'cat' => 'current-releases', 
    'no_found_rows' => true, 
)); 

// we don't want any output if no posts found. 
if ($related_posts->have_posts()) : 

    echo '<div class="related-posts">'; 

    while ($related_posts->have_posts()) : $related_posts->the_post(); 
     echo '<div class="related-album">'; 

     // the_post_thumbnail() and the_title() output, not return 
     the_post_thumbnail('large'); 
     the_title(' '); // I've used ' ' as the before arg since your original code did that. 

     echo '</div>'; 
    endwhile; 

endif; 
関連する問題