2010-12-05 20 views
0

各スライドの特定のカテゴリから4つのポストサムネイルを表示するスライダを実装する必要があります。私はjQueryのスライダーのために必要な構造は、このようなものであるループでwordpress投稿を取得する

<ul class= "videoSlider"> 
          <?php 
          $pStart = 0; 
          $flag = true; 

          while ($flag) { 

           query_posts('cat=14&posts_per_page=4&offset='.$pStart); 

           $pStart = + 4; 
          ?> 


           <li> 
           <?php 
           if (have_posts()) { 

            while (have_posts()) { 
             the_post(); 
           ?> 
             <div onclick="something()"> 

            <?php echo the_post_thumbnail(array(215, 190)); ?> 
             </div> 

           <?php 
            } 
           } else { 
            $flag = false; 
           } 
           ?> 
          </li> 


          <?php 

          wp_reset_query(); 

          } ?> 

   <ui> 
         <li> 
         <div> 
          thumb 1 
         </div> 
         <div> 
          thumb 2 
         </div> 
         <div> 
          thumb 3 
         </div> 
         <div> 
          thumb 4 
         </div> 
        </li> 


        <li> 
         <div> 
          thumb 5 
         </div> 
         <div> 
          thumb 6 
         </div> 
         <div> 
          thumb 7 
         </div> 
         <div> 
          thumb 8 
         </div> 
        </li> 

       </ul> 

しかし、コードが何らかの理由で機能していません!このために私はこれを書きましたいくつかのリストを生成した後に、コードの実行が停止せず、ブラウザがハングアップするように見えます。私は間違った方法で関数を使用しましたか? 'query_posts('cat=14&posts_per_page=4&offset='.$pStart)'? 実際にどのように実装する必要がありますか?

答えて

0

多くの投稿がある場合は、外側のwhileループは、すべての投稿、2件ずつ一度に質問されるまで継続していきます。

あなたは自分のために物事を複雑にしているように見えます。だからここで私は代わりにやるべきことがあります。

global $wp_query; 
query_posts('cat=14'); 

if (have_posts()): 

    $last_post = $wp_query->post_count - 1; // index for the last post 
    $counter = 0; 

    echo '<ul class= "videoSlider">'; 

     while (have_posts()): 

      the_post(); 

      if ($counter === 0) 
       echo '<li>'; 

      echo '<div onclick="something()">'; 
      the_post_thumbnail(array(215, 190)); 
      echo '</div>'; 

      if ($counter === 3 || $last_post == $wp_query->current_post) { 
       $counter = 0; 
       echo '</li>'; // close the tag every 4th item, or if we're at the end of the loop 

      } else { 
       $counter++; 
      } 


     endwhile; 

    echo '</ul>'; 

endif; 
+0

優秀!それはうまく動作します!私はこの方法で考えなかった:)注:私は最初のアプローチで6つの記事を試したので、なぜそれが長くかかり、ブラウザーをフリーズするのか分からない! – med

関連する問題