我应该对PHP代码做些什么修改,才能使repeater中的图库正常工作?

htrmnn0y  于 2022-10-30  发布在  PHP
关注(0)|答案(2)|浏览(123)

ACF提供了一个在repeater字段中添加图库的选项。然而,我的问题是如何编写PHP来展示这个图库。
我试着寻找类似的问题,但这些解决方案对我不起作用。我还试着寻找YouTube视频和搜索ACF文档网站。支持在中继器中组合图库的代码似乎对我不起作用。
这是转发器的标准ACF PHP格式:

<?php

// check if the repeater field has rows of data
if( have_rows('repeater_field_name') ):

    // loop through the rows of data
    while ( have_rows('repeater_field_name') ) : the_row();

        // display a sub field value
        the_sub_field('sub_field_name');

    endwhile;

else :

    // no rows found

endif;

?>

这是一个图库的标准ACF PHP格式:

<?php 
$images = get_field('gallery');
$size = 'full'; // (thumbnail, medium, large, full or custom size)
if( $images ): ?>
    <ul>
        <?php foreach( $images as $image_id ): ?>
            <li>
                <?php echo wp_get_attachment_image( $image_id, $size ); ?>
            </li>
        <?php endforeach; ?>
    </ul>
<?php endif; ?>

我希望我能以某种方式将两者结合起来以达到预期的效果。但是我的PHP知识不是很好。所以欢迎所有的帮助。

pbpqsu0x

pbpqsu0x1#

你可以做一个替代的解决方案,如果你想要一个重复与一个图像,你可以简单地添加一个图像,而不是一个画廊。如果你想要每个迭代多个图像,你可以添加一个重复内的重复。

解决方案1:

<?php
// check if the repeater field has rows of data
if( have_rows('repeater_field_name') ):
    // loop through the rows of data
    while ( have_rows('repeater_field_name') ) : the_row();
        echo '<img src="' . get_sub_field('image_field_name') . '">';
    endwhile;
else :
    // no rows found
endif;
?>

解决方案2:

<?php
// check if the repeater field has rows of data
if( have_rows('repeater_field_name') ):
    // loop through the rows of data
    while ( have_rows('repeater_field_name') ) : the_row();
        echo '<ul>';
        while( have_rows('repeater_sub_field_name') ) : the_row();
            echo '<li><img src="' . get_sub_field('image_field_name') . '"></li>';
        endwhile;
        echo '</ul>';
    endwhile;
else :
    // no rows found
endif;
?>
goqiplq2

goqiplq22#

看看这个,我做了和它的工作画廊-领域内的中继器

<?php if( have_rows('gallery') ):
    // loop through the rows of data
    while ( have_rows('gallery') ) : the_row();

        $images = get_sub_field('gallery_img');
        if( $images ): ?>

        <?php foreach( $images as $image ): ?>
            <div class="glimg">
                <img src="<?php echo $image; ?>" alt="" />
            </div>
        <?php endforeach; endif;?>
   <?php endwhile; endif; ?>

相关问题