我有以下代码:
<?php
$brandNames = get_post_meta( get_the_ID(), 'brands_list', true );
if( $brandNames ):
?>
<ul>
<?php
for( $z = 0; $z < $brandNames; $z++ ):
$third_count = ceil($brandNames / 3);
$brandName = $brandNames.blah;
?>
<?php echo $brandName;?><br/>
<?php if($z == $third_count & $brandNames != 1):?>
<?php echo "</ul><ul>";?>
<?php endif;?>
<?php endfor;?>
</ul>
<?php endif;?>
当它输出列表时,它只输出2个UL元素,而不是3个。不确定我做错了什么,任何提示都会受到赞赏。
它已经过了三分之一,关闭了UL以创建另一个,但从未创建第三个,只是更大的第二个UL。
答案 0 :(得分:0)
这应该可以解决问题。首先,我计算$brandNames
数组有多少索引。然后我更改了输出</ul><ul>
的条件语句。首先,我向$z
添加1以获取循环计数,然后使用%
(模数)3 == 0,它将循环计数确定为3并返回余数。如果余数等于0,那么你知道循环计数是3的倍数。然后我确保循环计数不等于总索引
在$brandNames
数组中,以便不输出额外的</ul><ul>
。
<?php
$brandNames = get_post_meta( get_the_ID(), 'brands_list', true );
$brandCount = count($brandNames);
if( $brandNames ):
?>
<ul>
<?php
for( $z = 0; $z < $brandNames; $z++ ):
$brandName = $brandNames.blah;
?>
<li><?php echo $brandName;?></li>
<?php if(($z + 1) % 3 == 0 && ($z + 1) != $brandCount): ?>
<?php echo "</ul><ul>";?>
<?php endif;?>
<?php endfor;?>
</ul>
<?php endif;?>