【问题标题】:Add class to every 4 posts and 8 posts -- WordPress Loop为每 4 个帖子和 8 个帖子添加课程——WordPress Loop
【发布时间】:2013-10-06 00:20:23
【问题描述】:

我正在尝试构建一个内容滑块,以便每张幻灯片包含 8 个图像。为此,我需要在我的 WP 查询中每 4 个帖子添加 'row-fluid' 类,每 8 个帖子添加 'slide' 类。

我试图实现的 HTML -

<div class="coda-slider"  id="slider-id">

  <div class="slide">

    <div class="row-fluid">
      <div class="span3">
        <img src="...">
      </div>
      <div class="span3">
        <img src="...">
      </div>
      <div class="span3">
        <img src="...">
      </div>
      <div class="span3">
        <img src="...">
      </div>
    </div><!-- /row-fluid -->

    <div class="row-fluid">
      <div class="span3">
        <img src="...">
      </div>
      <div class="span3">
        <img src="...">
      </div>
      <div class="span3">
        <img src="...">
      </div>
      <div class="span3">
        <img src="...">
      </div>
    </div><!-- /row-fluid -->

  </div><!-- /slide -->

  <div class="slide">

    <div class="row-fluid">
      <div class="span3">
        <img src="...">
      </div>
      <div class="span3">
        <img src="...">
      </div>
      <div class="span3">
        <img src="...">
      </div>
      <div class="span3">
        <img src="...">
      </div>
    </div><!-- /row-fluid -->

    <div class="row-fluid">
      <div class="span3">
        <img src="...">
      </div>
      <div class="span3">
        <img src="...">
      </div>
      <div class="span3">
        <img src="...">
      </div>
      <div class="span3">
        <img src="...">
      </div>
    </div><!-- /row-fluid -->

  </div><!-- /slide -->

</div><!-- /coda-slider -->

我的查询无法正常工作 -

<?php

$args = array( 'post_type' => 'video', 'posts_per_page' => 10,);

$the_query = new WP_Query( $args );

echo '<section id="our-clients">';

echo '<div class="coda-slider"  id="slider-id">';   

$i = 1;

echo '<div class="slide">';

echo '<div class="row-fluid">';

if ( $the_query->have_posts() ) : while ( $the_query->have_posts() ) : $the_query->the_post();

echo '<div class="span3">';

the_post_thumbnail();

echo '</div>';

     if($i % 8 == 0) {echo '</div><div class="slide">';}

     elseif($i % 4 == 0) {echo '</div><div class="row-fluid">';}

$i++; endwhile; endif;

echo '</div>'; //row-fluid

echo '</div>'; //slide

echo '</div>'; //coda-slider

echo '</section>';

查询打印出来的内容 -

php 为每 8 个帖子添加一个“幻灯片”类,但第一个“幻灯片”类没有正确关闭。这可能听起来很令人困惑,所以如果您需要更多信息,请告诉我。

感谢您的帮助!

【问题讨论】:

  • 每个slide你想要多少row-fluides
  • 我错过了但发布了一个答案,检查是否有帮助:-)

标签: php wordpress


【解决方案1】:

此代码来自 SO 上的另一个答案

如何在 php 循环 (wordpress) 中的每 n 个项目中添加一个类

https://stackoverflow.com/a/12698408/804087

<?php $counter = 1 ?>
<?php $loop = new WP_Query( array( 'post_type' => 'portfolio' ) ); ?>
    <?php while ( $loop->have_posts() ) : $loop->the_post(); ?>
    <div class="four columns <?php if ($counter % 4 == 1){echo 'alpha'}else if ($counter % 4 == 0){echo 'omega'} ?>">
        <?php the_content(); //along with other stuff in looped div ?>
    </div>
<?php $counter++ ; 
endwhile ?>

【讨论】:

    【解决方案2】:

    试试这个;)

    <?php
    
    $args = array( 'post_type' => 'video', 'posts_per_page' => 10,);
    
    $the_query = new WP_Query( $args );
    
    echo '<section id="our-clients">';
    
    echo '<div class="coda-slider"  id="slider-id">';   
    
    for($i=1; $the_query->have_posts(); $i++)
    {
        $the_query->the_post();
    
        $prePost='';
        $postPost='';
    
        if($i==1)
        {
            $prePost='<div class="slide"><div class="row-fluid">';
        }
        if($i==4)
        {
            $prePost='</div><div class="row-fluid">';
        }
    
        if($i==8)
        {
            $postPost='</div></div>';
            $i=0;
        }
    
        echo $prePost, '<div class="span3">';
        the_post_thumbnail();
        echo '</div>', $postPost;
    }
    
    
    echo '</div>'; //coda-slider
    
    echo '</section>';
    

    【讨论】:

      【解决方案3】:

      您可以使用get_postsarray_chunck 试试这个

      $args = array( 'post_type' => 'video', 'posts_per_page' => 10,);
      $posts = get_posts($args);
      $postGroups = array_chunk($posts, 8);
      
      foreach($postGroups as $group) :
          echo "<div class='slide'>";
              $slides = array_chunk($group, 4);
              foreach($slides as $fluides) :
                  echo "<div class='row-fluide'>";
                      foreach($fluides as $video) : setup_postdata($video)
                          <div class="span3">
                             // ...
                          </div>
                      endforeach;
                  echo "</div>";
              endforeach;
          echo "</div>";
      endforeach;
      

      【讨论】:

        猜你喜欢
        • 2018-12-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-12-19
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多