html 如何在行计数为3时循环acf repeater

dgtucam1  于 2022-11-27  发布在  其他
关注(0)|答案(1)|浏览(137)

嗨,伙计们,你们能帮我解决我的问题吗?基本上,我添加了一个div到我的acf中继器项目,但我需要3个项目每div
我的问题是循环的div也在div内部。
例如,第1行(1,2,3)、第2行(1,2,3)

<?php

    $course_reference = get_field('course-reference-number');
    $program_id = get_field('course-program-id');

    if( have_rows('course_month_out') ):
       while( have_rows('course_month_out') ) : the_row();

             if( have_rows('course_schedule_row_dates') ):
                $count = 0;
                $group = 0;

                while( have_rows('course_schedule_row_dates') ) : the_row();
                    
                $course_date_selector = get_sub_field('course_date_selector');
                $course_date_url = date('d-m-y',strtotime($course_date_selector));
                $current_date_field = get_sub_field('course_date_selector', false, false);
                $currentDateTime = date('Ymd');
           
                
                if ($count % 3 == 0) {
                 
                    ?>
                        <div class="course_block">
                    <?php 
                }
                $group++;
                ?>

                <?php
                if($current_date_field < $currentDateTime) {
                
                }
                else {
                    ?>
                    <?php if(get_row_index() > 1 ){  echo ",";}?>
                    <a href="<?php echo 'https://ei.aimsapp.com/onlineapp/LandingPage.aspx?strProgID=' .  $program_id  . "&strIntakeID=" . $course_date_url . "-". $course_reference . "-01"  ?> " target="_blank"> <?php echo $course_date_selector; ?></a>
                
                    <?php 
                }
                ?>
              <?php       
            if ($count % 3 == 2) {
                ?>
                </div>
                <?php 
            }
            $count++;
        endwhile;
         
            endwhile;
        endif;
    endwhile;
    endif;

    ?>

以下是预期输出:

yzuktlbb

yzuktlbb1#

试试这个-我已经整理了你的代码,修正了错误,它应该可以工作。

<?php

$course_reference = get_field('course-reference-number');
$program_id = get_field('course-program-id');

if( have_rows('course_month_out') ):
    
    while( have_rows('course_month_out') ) : the_row();
        
        if( have_rows('course_schedule_row_dates') ):
            
            $count = 0;
            $group = 0;

            while( have_rows('course_schedule_row_dates') ) : the_row();
                
                $course_date_selector = get_sub_field('course_date_selector');
                $course_date_url = date('d-m-y',strtotime($course_date_selector));
                $current_date_field = get_sub_field('course_date_selector', false, false);
                $currentDateTime = date('Ymd');
           
                // if it's 1/3
                if ($count % 3 == 0) {
                    
                    //open div
                    $html = '<div class="course_block">';
                    $group++;
                            
                }

                if($current_date_field < $currentDateTime) {
                    
                    //something
                
                } else {
                   
                    if( get_row_index() > 1 ){
                        
                        echo ",";
                        
                    }
                    
                    $html .= '<a href="https://ei.aimsapp.com/onlineapp/LandingPage.aspx?strProgID=' .  $program_id  . '&strIntakeID=' . $course_date_url . '-'. $course_reference . '-01" target="_blank">' . $course_date_selector . '</a>';
                    
                }
            
                // if it's 3/3
                if ($count % 3 == 1) {
     
                    $html .= '</div>';
                  
                }
                
                $count++;
        
            endwhile;
        endif;
    endwhile;
    
    echo $html;
    
endif;

?>

相关问题