为每个循环传递多个数组..我想

时间:2014-03-27 13:57:37

标签: php wordpress if-statement foreach

我喜欢jQuery并且不太了解php。

我正在制作一张带专辑的滑块。到目前为止一直很好,除了我现在卡住尝试为每个循环添加两个数组。至少我认为这是最好的解决方案。

在我的代码中,您可以看到我已经通过为自定义帖子类型中的6个自定义字段(我正在使用wordpress)硬编码6个图像来实现我所需要的。问题是,如果没有六个图像,则滑块显示空白图像(因为它存在但没有src)。我尝试用jquery删除元素,但这并不好。这是我到目前为止的代码,也许有一些我缺少的东西,我似乎无法让逻辑完全正确。

<?php 

                    $args = array(
                        'post_type'         => 'albums_gallery',
                    );

                    $loop = new WP_Query( $args );
                    while ( $loop->have_posts() ) : $loop->the_post();

                    $album_name = get_the_ID();


                    $image_1 = get_field('image_1');
                    $image_1_url = $image_1['url'];
                    $image_1_caption = get_field('image_1_caption');

                    $image_2 = get_field('image_2');
                    $image_2_url = $image_2['url'];
                    $image_2_caption = get_field('image_2_caption');

                    $image_3 = get_field('image_3');
                    $image_3_url = $image_3['url'];
                    $image_3_caption = get_field('image_3_caption');

                    $image_4 = get_field('image_4');
                    $image_4_url = $image_4['url'];
                    $image_4_caption = get_field('image_4_caption');

                    $image_5 = get_field('image_5');
                    $image_5_url = $image_5['url'];
                    $image_5_caption = get_field('image_5_caption');

                    $image_6 = get_field('image_6');
                    $image_6_url = $image_6['url'];
                    $image_6_caption = get_field('image_6_caption');


                ?>
                    <div class="album album_<?php echo $album_name ?>">
                        <div class="slider-wrapper theme-default">
                            <div class="slider" class="nivoSlider">

                                <!--<img src="<?php echo $image_1['url']; ?>" alt="<?php echo $image_1['alt']; ?>" title="<?php echo $image_1_caption; ?>" />
                                <img src="<?php echo $image_2['url']; ?>" alt="<?php echo $image_2['alt']; ?>" title="<?php echo $image_2_caption; ?>" />
                                <img src="<?php echo $image_3['url']; ?>" alt="<?php echo $image_3['alt']; ?>" title="<?php echo $image_3_caption; ?>" />
                                <img src="<?php echo $image_4['url']; ?>" alt="<?php echo $image_4['alt']; ?>" title="<?php echo $image_4_caption; ?>" />
                                <img src="<?php echo $image_5['url']; ?>" alt="<?php echo $image_5['alt']; ?>" title="<?php echo $image_5_caption; ?>" />
                                <img src="<?php echo $image_6['url']; ?>" alt="<?php echo $image_6['alt']; ?>" title="<?php echo $image_6_caption; ?>" />-->

                                <?php 
                                    $images = array("$image_1_url","$image_2_url","$image_3_url","$image_4_url", "$image_5_url", "$image_6_url");
                                    foreach ($images as $image) {
                                        if ($image != "") {
                                            echo "<img src='";
                                            echo $image;
                                            echo "' ";
                                            echo "title='caption'";
                                            echo "/>";
                                        }
                                    };
                                ?> 

                            </div>
                        </div>
                    </div>

                <?php endwhile; wp_reset_query(); ?>

我需要添加图片标题,并且可能是for each和if语句的链接,我的深度很少是设计师。

感谢您的帮助。

1 个答案:

答案 0 :(得分:2)

这就是你所需要的一切

<div class = "slider-wrapper theme-default">
    <div class = "slider" class = "nivoSlider">
        <?php

        $images = Array();
        for($i = 1; $i <= 6; $i++) {
            $image = get_field("image_{$i}");
            if(!$image || !$image['url']) {
                break;
            }
            $caption = get_field("image_{$i}_caption");
            ?>
                <img src="<?php echo $image['url']; ?>" alt="<?php echo $image['alt']; ?>" title="<?php echo $caption; ?>" />
            <?php
        }

        ?>