完全是PHP新手,但不擅长拼凑。我已经开始使用Wordpress的高级自定义字段,这非常有帮助。
我已经准备好了将库字段转换为jQuery滑块的代码(您可以在后端插入图像,它会循环并创建滑块)。然而,我希望它只加载一个静态图像,如果只输入一个图像。在psudo代码中:
如果字段包含多个图像,则循环遍历滑块代码else(如果只有一个图像),将一个图像包装在img标记中。
生成滑块的当前活动代码:
<?php
/* Create the Markup for a slider */
$images = get_field('hero_image_gallery');
if( $images ): ?>
<div id="slider" class="flexslider">
<ul class="slides">
<?php foreach( $images as $image ): ?>
<li>
<img src="<?php echo $image['url']; ?>" alt="<?php echo $image['alt']; ?>" />
<p class="flex-caption"><?php echo $image['caption']; ?></p>
</li>
<?php endforeach; ?>
</ul>
</div>
<?php endif;
?>
有什么想法吗?起初我想我想数$images,但我不确定这是否包含图库中的图像数量。
编辑:刚刚抛出启动的hero_image_gallery:
阵列(2)
目前有2个图像在那里,如果我添加第三个,我得到数组(3)。
编辑2:下面的hero_image_gallery的完整转储。我不得不删掉一些细节,因为我作为一个新手只能发布一个URL。
array(2){[0]=>array(9){["id"]=>int(971)["alt"]=>string(14)"School"["title"]=>字符串(12)"home-image-2"["caption"]=>string(0)"["description"]=>string(0缩略图宽度"]=>int(150)["缩略图高度"]=>int(102)["中等"]=>字符串(74)"#"["medium width"]=>int(300)["medium height"]=>int(204)["larg"]=>string(74)"#"["large width"]]=>int(1024)["large height"]]=>int string(74)"#"["width"]=>int(1260)["height"]=>int(860)["sizes"]=>array(9){["缩略图"]=>字符串(74)"#"["缩略图宽度"]=>int(150)["缩略图高度"]]=>int(102)["中等"]=>string(74)
我想你可能已经回答了自己的问题!如果你目前有2个图像,当你查看返回的数组时,它会返回2个结果,那么要检查你是否只有1个图像,你会这样做:
if( count($images) == 1 )
编辑:添加完整代码
<?php
/* Create the Markup for a slider */
$images = get_field('hero_image_gallery');
if( $images && count($images) == 1 ) { ?>
<!-- there is only 1 image -->
<?php } else if ( $images && count($images) > 1 ) { ?>
<!-- there is more than 1 image -->
<div id="slider" class="flexslider">
<ul class="slides">
<?php foreach( $images as $image ): ?>
<li>
<img src="<?php echo $image['url']; ?>" alt="<?php echo $image['alt']; ?>" />
<p class="flex-caption"><?php echo $image['caption']; ?></p>
</li>
<?php endforeach; ?>
</ul>
</div>
<?php } ?>