如果我在一个未知的迭代中有循环,你怎么能确保最后一个div在最后一次运行后被关闭?如果只是一种更有效的方法,我不确定我的逻辑是否正确。
例如,我需要6“sub-col”(可能在不同的szenario我只需要4或3“sub-col”)。 循环可以完全随机运行。
<?php
$loop_iteration = 0;
while ( have_posts() ) : the_post();
if ( $loop_iteration % 6 == 0 ) {
if ( $loop_iteration != 0 ) { echo '</div> <!-- sub-inner -->';echo '</div> <!-- sub-row -->'; }
echo '<div class="sub-row row">';
echo '<div class="sub-inner">';
}
echo '<div class="sub-col">';
/* do stuff */
echo '</div>';
$loop_iteration++;
endwhile;
// here I also could make a function, but for demonstration I let it as 'if'
if (
$loop_iteration % 6 == 1
|| $loop_iteration % 6 == 2
|| $loop_iteration % 6 == 3
|| $loop_iteration % 6 == 4
|| $loop_iteration % 6 == 5
) {
echo '</div> <!-- sub-inner -->';
echo '</div> <!-- sub-row -->';
}
?>
相同的循环,不同的检查
<?php
$loop_iteration = 0;
$div_status = 'close';
while ( have_posts() ) : the_post();
if ( $loop_iteration % 6 == 0 ) {
if ( $loop_iteration != 0 ) { echo '</div> <!-- sub-inner -->';echo '</div> <!-- sub-row -->'; }
echo '<div class="sub-row row">';
echo '<div class="sub-inner">';
$div_status = 'open';
}
echo '<div class="sub-col">';
/* do stuff */
echo '</div>';
$loop_iteration++;
endwhile;
if ( $div_status == 'open' ) {
echo '</div> <!-- sub-inner -->';
echo '</div> <!-- sub-row -->';
}
?>
谢谢。
只需在循环外移动打开和关闭的标签:
$loop_iteration = 0;
while ( have_posts() ) : the_post();
if ($loop_iteration !== 0) {
echo '</div> <!-- sub-inner -->';
echo '</div> <!-- sub-row -->';
}
echo '<div class="sub-row row">';
echo '<div class="sub-inner">';
echo '<div class="sub-col">';
/* do stuff */
echo '</div>';
$loop_iteration++;
endwhile;
if ($loop_iteration > 0) {
echo '</div> <!-- sub-inner -->';
echo '</div> <!-- sub-row -->';
}