Wordpress条件滑块(高级自定义字段)

时间:2013-07-23 13:27:17

标签: php wordpress slider

完成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)}}}

1 个答案:

答案 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 } ?>