每秒循环显示div

时间:2013-12-18 22:41:36

标签: php wordpress

我需要在wordpress循环中的每个第二项添加div。目前我正在使用下面的代码(有效),但我认为有一个更好/更清洁的方法来做到这一点。我如何更改以下代码?关于在哪里看的任何建议都会很棒,因为这对我来说似乎很混乱。提前谢谢。

<?php while ( have_posts() ) : the_post(); ?>
<?php            
  $col_select = $data['example_select'];
  if ($col_select == '2 Col') {
    get_template_part( '/templates/article/content', 'standard' ); ?>
<?php if( $wp_query->current_post == '1') { ?>
  </div><div class="row">
<?php } if( $wp_query->current_post == '3') { ?>
  </div><div class="row">
<?php } if( $wp_query->current_post == '5') { ?>
  </div><div class="row">
<?php } if( $wp_query->current_post == '7') { ?>
  </div><div class="row">
<?php } if( $wp_query->current_post == '9') { ?>
  </div><div class="row">
<?php } ?>

5 个答案:

答案 0 :(得分:4)

if( $wp_query->current_post % 2 != 0)应该这样做。

请参阅:http://php.net/manual/en/language.operators.arithmetic.php

编辑:当然,如果您删除了一个帖子,它会中断,但这是基于您当前的代码。这个位在哪里循环?你可以用计数器来做。

答案 1 :(得分:1)

甚至

if($wp_query->current_post % 2)

会对%2执行此操作,因为1 = true而0 = false

答案 2 :(得分:0)

<?php while ( have_posts() ) : the_post(); ?>
    <?php            
        $col_select = $data['example_select'];
    if ($col_select == '2 Col')
    {
        get_template_part( '/templates/article/content', 'standard' ); ?>
        <?php if(($wp_query->current_post % 2) == 1) { ?>
            </div><div class="row">
        <?php } ?>

current_post % 2如果是奇数,将返回1。

答案 3 :(得分:0)

您应该尽可能避免打开和关闭<?php ... ?>标记。这抑制了能够读取您的代码。其次,如果你想每隔一行结束div,那么就使用模数测试,如下所示:

<?php 
  while ( have_posts() ) : the_post();
    $col_select = $data['example_select'];
    if ($col_select == '2 Col') {
      get_template_part( '/templates/article/content', 'standard' ); 
      if ( $wp_query->current_post % 2 == 1 ) {
        echo "</div><div class=\"row\">";
      }
    }
  endwhile;
?>

但是,真正干净的方法是将显示推迟到您在此处呈现的模板。如果不知道你在get_template_part使用了什么,就很难说你如何传递适当的数据(这是你查询的“下两个”部分。

答案 4 :(得分:0)

模数方法是正确的,但如果$wp_query->current_post未返回增量数,则给出的选项会中断。

最好的办法是创建另一个变量来存储你循环的次数,如下所示。

<?php 
$x = 1;
while ( have_posts() ) : the_post();
    $col_select = $data['example_select'];
    if ($col_select == '2 Col')
    {
        get_template_part( '/templates/article/content', 'standard' );
        if(($x % 2) == 1) { ?>
            </div><div class="row">
        <?php }
        $x++;
    }
endwhile;

以上意味着,对于2 Col匹配的每一秒结果,您都会输出</div><div class="row">