ACF:显示一个子字段的列表,并在另一个分区中显示相应的子字段


ACF: Show a list of a subfield and show the corresponding subfield in another div?

使用ACF(高级自定义字段),我设置了一个包含两个子字段(title)和(slide)的字段(slides)。在我的header.php文件中,我有一个输出title子字段列表的代码。

// header.php //
<nav id="site-navigation" class="main-navigation" role="navigation">
    <?php $frontpage_id = get_option('page_on_front'); ?>
    <?php if ( is_singular() && have_rows('slides', $frontpage_id) ): ?>
        <ul>
            <?php while ( have_rows('slides', $frontpage_id) ) : the_row(); ?>
                <li class="group"><a href="#"><?php the_sub_field('title'); ?></a></li>
            <?php endwhile;?>
        </ul>
    <?php endif; ?>
</nav>

然后在我的index.php文件中,我有div.content。在这个div中,我想输出一个相应的slide子字段的列表。我该怎么做?

// index.php //
<div class="content"></div>

您可以在index.php文件-中重复类似的循环

<?php 
$frontpage_id = get_option('page_on_front');
if( have_rows('slides', $frontpage_id) ): 
    while( have_rows('slides', $frontpage_id) ) : the_row();
        // if your 'slide' field is an image
        $slide = get_sub_field('slide'); ?>
        <img src="<?php echo $slide['url']; ?>" alt="<?php echo $slide['alt']; ?>" />

    <?php endwhile;
endif;
?>

或者,您可以使用get_field('slides',$frontpage_id)获取与中继器关联的整个数据数组;-将其设置为全局变量,然后在两个文件中使用foreach循环。我认为第一种选择比较容易。