【问题标题】:Advanced Custom Fields Repeater With 2 Loops具有 2 个循环的高级自定义字段中继器
【发布时间】:2015-06-03 01:18:22
【问题描述】:

我正在设置一个照片库,其中包含一个主图像和 6 个缩略图。悬停缩略图时,主图像将发生变化。简单的东西。我遇到的问题是,当页面加载时,主图像是来自第一个中继器行的图像(就像我想要的那样),但是在缩略图中,第一个中继器行没有得到输出。所以只输出缩略图 2 - 6。我是高级自定义字段的新手。不确定这是否与此有关,或者只是一个简单的 PHP 错误。这是我的代码:

<?php if( have_rows('property_images') ): 

    while( have_rows('property_images') ): the_row();

        $image = get_sub_field('property_image');
        $url = $image['url'];

    ?>

    <img src="<?php echo $url ?>" class="property-main-img">

    <?php
        break;
        endwhile;
        endif; 
    ?>

            <ul>

                <?php if( have_rows('property_images') ): 

                        $i = 1;

                        while( have_rows('property_images') ): the_row();

                            $image = get_sub_field('property_image');
                            $url = $image['url'];

                        ?>

                        <?php if($i % 3 == 0) { ?>

                            <li class="prop-thumb-r"><img src="<?php echo $url ?>" alt="<?php echo $image['alt']; ?>" width="170" /></li>

                        <?php } else if($i == 1 || $i % 4 == 0) { ?>

                            <li class="prop-thumb-l"><img src="<?php echo $url ?>" alt="<?php echo $image['alt']; ?>" width="170" /></li>

                        <?php } else { ?>

                            <li><img src="<?php echo $url ?>" alt="<?php echo $image['alt']; ?>" width="170" /></li>

                        <?php } ?>

                        <?php
                             $i++;
                         endwhile; 
                    endif; 
                ?>

            </ul>

【问题讨论】:

  • 不太清楚为什么这不起作用,你能链接到一个例子吗?对于测试,您是否尝试过将第二个循环放在第一个循环之前,这将排除第一个循环或“中断”是否以某种方式影响您的第二个循环。
  • @johnnyd23 我刚刚尝试交换 while 循环,它确实按我想要的方式工作。显然,事情并没有按照我现在想要的顺序进行。但是我要显示的所有内容都在显示。我尝试更改我的变量名称以确保它们没有冲突并且不起作用。我还将所有内容都放在一个while循环中,但这也没有解决。此刻有点难过。

标签: php wordpress advanced-custom-fields


【解决方案1】:

似乎中断可能导致问题。尝试使用此方法通过仅从转发器字段中抓取第一行来获取第一张图像。

<?php 
    $rows = get_field( 'property_images' );
    $first_image = $rows[0]['property_image'];
?>

<img src="<?php echo $first_image['url'] ?>" class="property-main-img">

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-01-14
    • 2015-12-28
    • 1970-01-01
    • 2018-08-15
    • 1970-01-01
    • 2016-02-01
    • 2018-03-02
    相关资源
    最近更新 更多