我想在每两个项目后的while循环中添加一个div标记。
我正在尝试使用以下代码,但最后会添加一个空的<div></div>
。
$i = 0;
while ( have_posts() ) : the_post();
$i++;
if ($i == 1){$output .= "<div>";}
if ($i % 2 == 0){$output .= "</div><div>";}
endwhile;
if ($i % 2 != 0){$output .= "</div>";}
答案 0 :(得分:1)
尝试在下一次迭代开始时添加额外的</div><div>
:
$i = 0;
$div = '';
while ( have_posts() ) : the_post();
$i++;
$output .= $div;
if ($i == 1){$output .= "<div>";}
if ($i % 2 == 0){$div = "</div><div>";}
else {$div = '';)
endwhile;
if ($i % 2 != 0){$output .= "</div>";}
答案 1 :(得分:1)
您需要更多地包装逻辑。因为如果您有0个元素,则不需要任何包装。如果你有偶数元素,那么最后你不需要额外的包装。
我在这里添加了两个新功能,我认为它们的功能很明确:div_open()
和div_close()
。然后,您的伪代码的以下修改应概述它的工作原理:
if ( have_posts( ) )
{
div_open( );
for ($counter = 0; have_posts( ); $counter++)
{
the_post( );
...
if ( $counter && have_posts( ) && $counter % 2 == 0 )
{
div_close( );
div_open( );
}
}
div_close( );
}