duanou3868
2014-01-05 22:29
浏览 149
已采纳

在(foreach)循环中向第一个div添加一个类

I'm using the carousel that comes with bootstrap. This I'll be using in WordPress. I'm querying two recent posts with a foreach loop but for the carousel to work correctly I need the newest post to have an extra 'active' class. I found some solutions here on stackoverflow but it were all whileloops, I really need it for this foreach loop. This is my code:

    <div id="NewsCarousel" class="carousel slide">
          <div class="carousel-inner">
            <?php
            $args = array( 'numberposts' => '2', 'category' => 5 );
            $recent_posts = wp_get_recent_posts( $args );
            foreach( $recent_posts as $recent ){
                echo '<div class="item"><a href="' . get_permalink($recent["ID"]) . '" title="Look '.esc_attr($recent["post_title"]).'" >' . get_the_post_thumbnail($recent["ID"], array(200,200)) .$recent["post_title"].'</a> </div> ';
           }
          ?>
          </div>
       </div>

图片转代码服务由CSDN问答提供 功能建议

我正在使用引导程序附带的轮播。 我将在WordPress中使用它。 我正在使用foreach循环查询最近的两个帖子但是为了使轮播正常工作,我需要最新的帖子才能有一个额外的“活跃”课程。 我在stackoverflow上找到了一些解决方案,但它们都是whileloops,我真的需要它为这个foreach循环。 这是我的代码:

 &lt; div id =“NewsCarousel”class =“carousel slide”&gt; 
&lt; div class =“carousel-inner”&gt; \  n&lt;?php 
 $ args = array('numberposts'=&gt;'2','category'=&gt; 5); 
 $ recent_posts = wp_get_recent_posts($ args); 
 foreach($ recent_posts as $ 最近){
 echo'&lt; div class =“item”&gt;&lt; a href =“'。get_permalink($ recent [”ID“])。'”title =“Look'.esc_attr($ recent [”  post_title“])。'”&gt;'  。  get_the_post_thumbnail($ recent [“ID”],array(200,200))。$ recent [“post_title”]。'&lt; / a&gt;  &LT; / DIV&GT;  '; 
} 
?&gt; 
&lt; / div&gt; 
&lt; / div&gt; 
   
 
  • 写回答
  • 好问题 提建议
  • 关注问题
  • 收藏
  • 邀请回答

2条回答 默认 最新

  • dox19458 2015-01-12 15:57
    已采纳

    You can add a counter like so $count = 0; outside of the foreach loop. And then inside the foreach loop you tell it to increment like so $count++;

    You then check if the count is equal to 1 like this: if($count == 1){//do this}

    So in your case lets do it like this:

    <div id="NewsCarousel" class="carousel slide">
    <div class="carousel-inner">
    <?php
    $args = array( 'numberposts' => '2', 'category' => 5 );
    $recent_posts = wp_get_recent_posts( $args );
    $count = 0;
    foreach( $recent_posts as $recent ){
    $count++;
        echo '<div class="item'; if($count == 1){echo ' active';}"><a href="' . get_permalink($recent["ID"]) . '" title="Look '.esc_attr($recent["post_title"]).'" >' . get_the_post_thumbnail($recent["ID"], array(200,200)) .$recent["post_title"].'</a> </div> ';
    }
    ?>
    </div>
    </div>
    

    Try that, it should do the trick. I just used this method on a project of which I'm dealing with currently.

    已采纳该答案
    评论
    解决 无用
    打赏 举报
  • doudiejian5827 2014-01-05 22:33

    You can use a boolean variable to determine if it is a first loop or not. Initial value is true, once it loops, the value is set to false.

    <div id="NewsCarousel" class="carousel slide">
      <div class="carousel-inner">
        <?php
        $args = array( 'numberposts' => '2', 'category' => 5 );
        $recent_posts = wp_get_recent_posts( $args );
        $isFirst = true;
        foreach( $recent_posts as $recent ){
            echo '<div class="item' . $isFirst ? ' active' : '' . '"><a href="' . get_permalink($recent["ID"]) . '" title="Look '.esc_attr($recent["post_title"]).'" >' . get_the_post_thumbnail($recent["ID"], array(200,200)) .$recent["post_title"].'</a> </div> ';
            $isFirst = false;
       }
      ?>
      </div>
    </div>
    
    评论
    解决 无用
    打赏 举报

相关推荐 更多相似问题