如何将帖子循环到两个列中?

时间:2016-03-31 作者:Benn

我需要将WordPress帖子循环分成两列,左(所有几率)和右(所有偶数)。

目前,我正在用两个单独的循环来完成这项工作,但我希望用一个循环来完成,并且希望这项工作尽可能由WP编码标准来完成。

<div class="left-side">
    <?php 
        $row_start = 1; 
        while ( have_posts() ) : the_post(); 
            if( $row_start % 2  != 0) {// odd
                get_template_part( \'blog\',\'item\');
            }
            ++$row_start; 
        endwhile;
    ?>
</div>
<div class="right-side">
    <?php  
      $row_start = 1; 
       while ( have_posts() ) : the_post(); 
        if( $row_start % 2 == 0) {// even
            get_template_part( \'blog\',\'item\');
        }
        ++$row_start; 
        endwhile;
    ?>
</div>
感谢您的帮助!

1 个回复
SO网友:Adam

   <?php  
     $row_start = 1; 
     while ( have_posts() ) : the_post(); 
        if( $row_start % 2  != 0) {// odd
        ?>
          <div class="left-side"> 
             <?php get_template_part( \'blog\',\'item\'); ?> 
          </div> 
        <?php
        }
        if( $row_start % 2 == 0) {// even
        ?> 
          <div class="right-side"> 
             <?php get_template_part( \'blog\',\'item\');?> 
          </div> 
        <?php
        }
        ++$row_start; 
     endwhile;
    ?>
您可以随时进出PHP以实现您所追求的目标。我还没有测试过以上内容,但类似的东西应该可以工作。

您可以通过回显HTML来避免闯入和闯出PHP:

<?php  
     $row_start = 1; 
     while ( have_posts() ) : the_post(); 
        if( $row_start % 2  != 0) {// odd
          echo \'<div class="left-side">\';
          get_template_part( \'blog\',\'item\');
          echo \'</div>\'; 
        }
        if( $row_start % 2 == 0) {// even
          echo \'<div class="right-side">\';
          get_template_part( \'blog\',\'item\');
          echo \'</div>\';
        }
        ++$row_start; 
     endwhile;
    ?>

相关推荐

当in_the_loop()为假时,何时以及为什么is_Single(‘my_cpt’)为真?

我正在使用模板系统的示例代码。此地址的页码:http://project.test/my_cpt/hello-post/.无法理解原因is_singular( \'my_cpt\' ) 是true 虽然in_the_loop() 是false.在页面模板中The Loop "E;“工程”:if ( have_posts() ) { while ( have_posts() ) { the_post(); ?>