如何在PHP foreach循环中为第1、3、5个元素的img添加特定类?
实现方案
核心思路
通过维护一个计数器来追踪符合NY Staff条件的元素,针对第1、3、5个(奇数位置)元素,动态为img标签追加特定类。
完整修改代码
<?php // 初始化计数器,统计符合条件的NY Staff元素 $nyStaffCount = 0; foreach($leaders as $l) : ?> <?php if(get_field('type', $l->ID) == 'NY Staff') : ?> <?php $nyStaffCount++; // 每次匹配到NY Staff,计数器递增 ?> <div class="col-lg-4 col-md-4 col-sm-6 col-xs-12"> <div class="member-info"> <div class="photo"> <?php // 基础类名 $imgClass = 'img-responsive'; // 检查是否为第1、3、5个元素(奇数位置) if ($nyStaffCount % 2 !== 0) { // 替换为你需要添加的特定类名 $imgClass .= ' your-specific-class'; } ?> <img class="<?php echo $imgClass; ?>" src="<?php the_field('image', $l->ID); ?>" alt=""> </div> <div class="info"> <div class="name"><?php echo get_the_title($l->ID); ?></div> <div class="body"> <div><span class="job-name"><?php the_field('position', $l->ID); ?>,</span> based in <?php the_field('location', $l->ID); ?></div> <a href="<?php echo get_permalink($l->ID); ?>" class="read-more"> <svg id="_24x24" data-name="24x24" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><defs><style>.cls-1{fill:#FFFFFF;}</style></defs><path id="icon-arrow-right" class="cls-1" d="M12.46 12L6 19l2.77 3L18 12 8.77 2 6 5l6.46 7z"/></svg> </a> </div> </div> </div> </div> <?php endif; ?> <?php endforeach; ?>
关键说明
- 计数器初始化:在循环外部声明
$nyStaffCount,确保每次遍历从0开始计数 - 计数递增:仅在匹配到
NY Staff时递增计数器,保证计数只针对目标元素 - 类名动态生成:通过
% 2 !== 0判断奇数位置,为对应元素的img标签追加特定类(需替换代码中的your-specific-class为实际类名)
内容的提问来源于stack exchange,提问作者Rafa971
相关产品推荐
相关产品推荐

