You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何每迭代3次包裹div并统计内部项目数量用于设置自定义类

实现方法

要实现外层div携带内部项目数量的自定义类,只需要在创建每组外层div时,预先计算当前分组的项目总数即可,无需额外嵌套计数逻辑:

  • 基于总项目数$post_count计算总分组数,每组固定3项
  • 非最后一组的项目数固定为3
  • 最后一组的项目数为总项目数减去前面所有组的项目总数

修改后完整代码

(默认循环索引$i初始值为0,若初始值为1可参考下方补充说明调整)

// 计算当前分组的项目数
$current_group_index = floor($i / 3);
$total_groups = ceil($post_count / 3);
$current_group_item_count = ($current_group_index < $total_groups - 1) ? 3 : ($post_count - $current_group_index * 3);

if( ($i % 3) == 0 ) { $griditemcounter = 1; }
                        
// 拼接外层div类时加入项目数量类
( ( $i % 3 ) == 0 ) ?  $html .= '<div class="project_row projectitemcount-'.$current_group_item_count.' grid-'.( ( $griditemcounter % 2 ) == 0 ? 'second' : 'first' ).'">'  :  $html .= '';                                  
        $html .= '<div class="project_item grid'.$griditemcounter.'" style="background-image:url('.( $url ? $url : 'https://via.placeholder.com/940x1260').') ">';
            $html .= '<a href="'.get_the_permalink().'">';
                $html .= '<div class="project_item_img"><img src="'.( $url ? $url : 'https://via.placeholder.com/768x375').'" alt=""/></div>';
                $html .= '<div class="et_pb_text_inner project_item_content">';
                    $html .= '<h3>'.get_the_title().'</h3>';

                     $terms = get_the_terms( get_the_ID(), $taxonomy ); 
                        foreach($terms as $term) {
                            $html .= '<p>'. $term->name. '</p>';
                    }
                $html .= '</div>';
            $html .= '</a>';
        $html .= '</div>';  

( $i == ( $post_count - 1 ) || ( ++$i % 3 ) == 0 )  ? $html .=  '</div>'  : $html .= ''; 
$griditemcounter++;

补充说明

如果你的循环索引$i初始值为1,只需调整分组计算逻辑为:

$current_group_index = floor(($i - 1)/ 3);

内容的提问来源于stack exchange,提问作者ccmanz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 16:24:04