我有一个滑块,其中包含带有图像的li。前3个图像是必需的,但用户应该能够添加多达20个。我想我必须创建一个实际有20个li的ul,第3个li之后的li设置为显示:无,但由于某种原因,它会打断滑块。我用自定义帖子类型设置了相同的滑块,带有循环,效果很好,但如果我硬编码li,即使它们设置为显示:无,它也会中断。
这是我的代码:
$imagen2 = get_field("imagen2");
$imagen3 = get_field("imagen3");
$imagen4 = get_field("imagen4");
$imagen5 = get_field("imagen5");
$imagen6 = get_field("imagen6");
...
<div class="artiq-slidder-detalle-wrap">
<div class="artiq-slidder detalle-slidder">
<ul class="artiq-slidder-ul">
<li class="artiq-slidder-item"> <img src="<?php echo $imagen1[\'url\'] ?>"></li>
<li class="artiq-slidder-item clickable"> <img src="<?php echo $imagen2[\'url\'] ?>"></li>
<li class="artiq-slidder-item"> <img src="<?php echo $imagen3[\'url\'] ?>"></li>
<li class="artiq-slidder-item"> <img src="<?php echo $imagen4[\'url\'] ?>"></li>
</ul>
</div>
</div>
第四个li是一个空的自定义字段,因此即使设置为显示:无,它也会打断滑块;
如何创建某种循环,即如果自定义字段中有数据,则使用自定义字段创建li?
现在我得到一个空的li,里面有一个img和scr(未知)。
最合适的回答,由SO网友:joetek 整理而成
您可以添加检查以仅显示存在的项目:
<?php if ( $imagen4 ) { ?>
<li class="artiq-slidder-item"> <img src="<?php echo $imagen4[\'url\'] ?>"></li>
<?php } ?>
但看起来您正在使用高级自定义字段插件。如果是这种情况,您最好使用repeater字段,并指定最少的图像数。然后,在循环中显示它。
<?php if( have_rows(\'images\') ): ?>
<div class="artiq-slidder-detalle-wrap">
<div class="artiq-slidder detalle-slidder">
<ul class="artiq-slidder-ul">
<?php while( have_rows(\'imagen\') ): the_row();
$imagen = get_sub_field(\'imagen\');
?>
<li class="artiq-slidder-item"> <img src="<?php echo $imagen[\'url\'] ?>"></li>
<?php endwhile; ?>
</ul>
</div>
</div>
<?php endif; ?>
(以上代码假设您的中继器名为“images”)