2010-03-28 5 views
1

두 개의 div에있는 카테고리에 내 WordPress 게시물을 표시하고 싶습니다. 그래서 예를 들면 :WordPress 쿼리가 두 개의 Divs에 게시됩니다.

<ul id="left"> 

<li class="post">POST 1</li> 

<li class="post">POST 3</li> 

<li class="post">POST 5</li> 

<li class="post">POST 7</li> 

</ul> 

<ul id="right"> 

<li class="post">POST 2</li> 

<li class="post">POST 4</li> 

<li class="post">POST 6</li> 

<li class="post">POST 8</li> 

</ul> 

그래서 내가해야 할 어떻게 든 각 사업부에 대한 균등 이상한 후 처음 4 개 게시물을 뱉어 시작 query_posts에게 있습니다. category.php 파일이므로 기본 루프가 있어야하므로 두 개의 별도 WP_Queries를 갖고 싶지 않습니다. 어떻게하는지 잘 모르겠습니다.

도움을 주시면 감사하겠습니다.

답변

1

어떻게 두 목록을 preconstructing에 대한 (가 의사 PHP :

<?php 
$list1 = array(); 
$list2 = array(); 
$i=0; 
foreach($query_results as $res) { 
    if(($i++)&1) $list2[] = $res; 
    else $list1[] = $res; 
} 
?> 

이제 목록 1에 포함 된 첫 번째, 세 번째, ... 항목리스트 2 그래서 나는의 WP 쿼리 구문을 불러올 수 없습니다 두 번째, 네 번째, ...을 포함합니다. 그런 다음 원하는대로 두 div에서 인쇄 할 수 있습니다.

: 당신의 목표는 게시물의 2 열 목록을 가지고있는 경우

+0

내가이 우연히 않았다 http://perishablepress.com/press/2008/08/04/two-column-horizontal-sequence-wordpress-post -order/그러나 나는 그것을하는 훨씬 더 간단한 방법을 찾고 있었다. 게다가 위와 똑같은 일을하지 않습니다. – Cameron

0

은 (접선에? PHP는 위의 코드가 무엇을 할 수있는 간결한 방법이 있나요 파이썬은 ... 계단 슬라이스 구문) 그것은 예를 들어, 플로트를 사용하여 두 개의 기둥의 시각적 모양을 제공하기 위해 CSS를 사용해서 하나의 목록에서 게시물 그냥 출력에 훨씬 쉽게, 그리고 것입니다 : 내가 전에 이것을 테스트하지 않은

width: 50%; 
float: left; 
2

,이 아니다 최선의 방법이지만 해결책은

<?php if (have_posts()) : ?> 

    <?php while (have_posts()) : the_post(); ?> 

     <?php 
      $count++; 

      if($count % 2) { 
       $left_array[] = array('content' => get_the_content('more...')); 
      } 
      else { 
       $right_array[] = array('content' => get_the_content('more...')); 
      } 
     ?> 

    <?php endwhile; ?> 

    <ul id="left"> 
     <?php 
     foreach($left_array as $post) { 
      echo '<li class="post">'.$post['content'].'</li>'; 
     } 
     ?> 
    </ul> 
    <ul id="right"> 
     <?php 
     foreach($right_array as $post) { 
      echo '<li class="post">'.$post['content'].'</li>'; 
     } 
     ?> 
    </ul> 

<?php else : ?> 

<?php endif; ?> 
,

또는 같은 생각하지만, 또 다른 방법 :

<?php if (have_posts()) : ?> 

    <?php while (have_posts()) : the_post(); ?> 

     <ul id="left"> 
     <?php 
      $count++; 

      if($count % 2) { 
      } 
      else { 
     ?> 
       <li class="post"><?php the_content('more...'); ?></li> 
     <?php 
      } 
     ?> 
     </ul> 

     <ul id="right"> 
     <?php 
      $count++; 
      if($count % 2) { 
     ?> 
       <li class="post"><?php the_content('more...'); ?></li> 
     <?php 
      } 
     ?> 
     </ul> 

    <?php endwhile; ?> 

<?php else : ?> 

<?php endif; ?> 
+0

정상 작동하지만 정상적으로 얻은 형식화 된 콘텐츠 대신 원시 콘텐츠를 뱉어냅니다 (p 태그 등). 하단 하나가 작동하지 않습니다. 어떤 아이디어? 감사. – Cameron

+0

아, 네, 제 생각에는 오류가 있습니다.이 문제를 해결하려고 노력할 것입니다. – ahmet2106

관련 문제