完成PHP的新手,但在一起拼凑也不错。我已经开始为Wordpress使用高级自定义字段,这非常有用。
我已经将代码组合在一起,将一个gallery字段转换为jQuery滑块(你在后端的图像中查看它并循环创建滑块)。但是,如果只输入一个图像,我希望它只加载静态图像。在psudo-code中:
如果字段包含多个图像,则循环滑块代码(如果只有一个图像),只需将一个图像包装在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。我不得不编辑一些细节,因为我只能将1个URL作为新手发布。
array(2){[0] =&gt; array(9){[“id”] =&gt; int(971)[“alt”] =&gt; string(14)“School”[“title”] =&gt; string(12)“home-image-2”[“caption”] =&gt; string(0)“”[“description”] =&gt; string(0)“”[“url”] =&gt; string(74)“#”[“width”] =&gt; int(1260)[“height”] =&gt; int(860)[“sizes”] =&gt; array(9){[“thumbnail”] =&gt; string(74)“#”[“thumbnail-width”] =&gt; int(150)[“thumbnail-height”] =&gt; int(102)[“medium”] =&gt; string(74)“#”[“medium-width”] =&gt; int(300)[“medium-height”] =&gt; int(204)[“large”] =&gt; string(74)“#”[“large-width”] =&gt; int(1024)[“large-height”] =&gt; int(698)}} [1] =&gt; array(9){[“id”] =&gt; int(977)[“alt”] =&gt; string(0)“”[“title”] =&gt; string(12)“home-image-1”[“caption”] =&gt; string(0)“”[“description”] =&gt; string(0)“”[“url”] =&gt; string(74)“#”[“width”] =&gt; int(1260)[“height”] =&gt; int(860)[“sizes”] =&gt; array(9){[“thumbnail”] =&gt; string(74)“#”[“thumbnail-width”] =&gt; int(150)[“thumbnail-height”] =&gt; int(102)[“medium”] =&gt; string(74)“#”[“medium-width”] =&gt; int(300)[“medium-height”] =&gt; int(204)[“large”] =&gt; string(74)“#”[“large-width”] =&gt; int(1024)[“large-height”] =&gt; int(698)}}}
答案 0 :(得分:0)
我想你可能已经回答了自己的问题!如果您当前有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 } ?>