2012-10-10 3 views
0
나는이 acheive 수있는 방법

, 게시물의 수가 4의 배수가 아닌 경우 루프를 되 감아 재사용 하시겠습니까?

I가 한 번에 4 개 게시물을 표시하고 여기에 직면하고있는 문제는 내가 슬라이더와 보여주는 9 개 게시물이 무엇 4 개 게시물의 전체 블록을 이동하는 슬라이드 쇼 끝의 단일 게시물 4posts -> 4posts -> 1Post.

게시물의 총 수가 4의 배수가 아니면 쿼리를 다시 되 감아서 루프에 9 개의 게시물이 있으면 쿼리를 다시 사용하고 빈 공간을 채울 수 있습니다. 처음 세 게시물.

가 여기 내 PHP 코드 :

<?php $slide_thumb_query = new WP_Query('category_name=slideshow&meta_key=_thumbnail_id'); ?> 
<?php while ($slide_thumb_query->have_posts()) : $slide_thumb_query->the_post(); ?> 
<li> 
    <a href="<?php $image_id = get_post_thumbnail_id(); 
     $image_url = wp_get_attachment_image_src($image_id,'homeslider', true); 
     echo $image_url[0]; ?>"> 
      <img src="<?php $image_id = get_post_thumbnail_id(); $image_url = wp_get_attachment_image_src($image_id,'homeslider-thumb', true); echo $image_url[0]; ?>" title="<?php the_title()?>"/> 
    </a><a href="<?php the_permalink();?>"> 
    <span class="overlay-box"></span> 
    </a> 
</li> 
<?php endwhile; ?> 

답변

0

내가 자바 스크립트로이 문제를 해결하는 것이 좋습니다, 슬라이드 쇼는 문제를 해결해야하므로 자바 스크립트 구축이다.
글로벌 단계 :

  1. 이 처음 <li>의 당신이 필요 4ish 번호 (사용 모듈 또는 무엇도 당신이 원하는)
  2. 복사의 경우
  3. 가 결정합니다 <li> 항목을 카운트하고 그들을 추가 종료.

질문이 있습니까?

0

WP_Query의 rewind_posts 메서드를 사용하여 언제든지 다시 시작할 수 있습니다. 따라서 초기 루프가 끝나면 추가 할 소식의 개수를 파악하고 추가 루프를 만들어야합니다. rewind_posts은 데이터베이스에 도달하지 않으므로 추가 쿼리 또는 다른 것과는 다릅니다. 여기에 내 생각은 코드에 있습니다

여러 루프와, 내 머리 위로 떨어져, 그래서 당신의 추천 게시물이 하나의 항목이 포함됩니다하더라도, 그것은 단지 4 번 반복거야
$featured_posts = new WP_Query(...); 
while ($featured_posts->have_posts()) { 
    $featured_posts->the_post(); 
    // Output your things here 
} 

// Do we need more posts? 
if (count($featured_posts->posts) % 4 > 0 && count($featured_posts->posts) > 0) { 
    $more_to_go = count($featured_posts->posts) % 4; 

    while (true) { 
     $featured_posts->rewind_posts(); 
     while ($featured_posts->have_posts()) { 
      $featured_posts->the_post(); 
      // Keep printing your things here 

      $more_to_go--; 
      if ($more_to_go < 1) 
       break 2; // break both while loops 
     } 
    } 
} 

. 나는 이것을 시험하지는 않았지만 잘하면 그것은 파기에 대한 단서를 줄 것이다.

건배!

+0

안녕 Kov, 당신이 제안하는 코드를 pls 정교 할 수 있습니까, 나는 약간 혼란 스럽습니다 ... –

+0

좋아, 그래서 당신은 먼저 검색하는 게시물을 출력합니다. 그 수의 게시물이 4의 배수이면 무한 while 루프를 입력하면 'more_to_go' 변수가 얼마나 많은 게시물을 출력해야하는지 알려줍니다. 그래서 while 루프에서 추천 게시물 루프를 되감고 원래 출력과 같이 다시 실행하여 출력 게시물마다 'more_to_go'를 감소시킵니다. 'more_to_go'가 0에 도달하면 모든 루프가 깨집니다. 질문이 있으십니까? – kovshenin

관련 문제