在(foreach)循环中向第一个 div 添加一个类
Posted
技术标签:
【中文标题】在(foreach)循环中向第一个 div 添加一个类【英文标题】:Adding a class to first div in (foreach) loop 【发布时间】:2014-01-23 06:31:39 【问题描述】:我正在使用引导程序附带的轮播。这我将在 WordPress 中使用。我正在使用 foreach 循环查询两个最近的帖子,但是为了让轮播正常工作,我需要最新的帖子才能有一个额外的“活动”类。我在 *** 上找到了一些解决方案,但都是 whileloops,我真的需要它来处理这个 foreach 循环。这是我的代码:
<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>
【问题讨论】:
循环类型无关紧要,添加一个计数器,第一次迭代添加类 ... 或使用$recent_posts
数组键,如果它们保证从零开始
【参考方案1】:
您可以使用boolean
变量来确定它是否是第一个循环。初始值为true
,一旦循环,值设置为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>
【讨论】:
不起作用,我得到 x 次主动回显这个词,没有课程,什么都没有。 将条件移到 echo 之上,将结果从条件分配给变量,然后在 echo 中使用该变量【参考方案2】:您可以在 foreach 循环之外添加一个像 $count = 0;
这样的计数器。然后在 foreach 循环中告诉它像这样递增$count++;
然后检查计数是否等于 1,如下所示:if($count == 1)//do 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>
试试吧,它应该可以解决问题。我刚刚在我目前正在处理的项目中使用了这种方法。
【讨论】:
以上是关于在(foreach)循环中向第一个 div 添加一个类的主要内容,如果未能解决你的问题,请参考以下文章
向 div 添加事件监听器适用于 ForEach() 方法,但不适用于 for 循环。有啥不同?