ACF 从父页面获取转发器的子字段

Posted

技术标签:

【中文标题】ACF 从父页面获取转发器的子字段【英文标题】:ACF get sub_field of repeater FROM a parent page 【发布时间】:2019-03-09 23:29:51 【问题描述】:

我尝试植入这个

- Page A0 (images + texts)
-- Page A1
-- Page A1
---Page A2

在页面 A1 和 A2 中,我需要从一组字段中检索画廊和文本。 如果我使用普通字段,而不是在组中,我会实现这一点......但我需要留在组字段中。

 <?php
    $post_ID = get_the_ID();
    $parentpost_id = wp_get_post_parent_id( $post_ID );
    $images_images = get_sub_field( "images", $parentpost_id ); //use parents-post field: "broschuren-download"
     ?>

<div class="hero__image-wrapper <?php if (count ($images_images) > 1)  echo "heroslide" ; ?> ">
       <?php if ( $images_images ) :  ?>
           <?php foreach ( $images_images as $images_image ): ?>
               <img class="hero__image fit-cover" src="<?php echo $images_image['sizes']['large']; ?>"  />
           <?php endforeach; ?>
       <?php endif; ?>
    </div>

【问题讨论】:

【参考方案1】:

get_sub_field() 函数仅在您在父字段上运行的have_rows() 循环内有效。如果您仍想使用get_sub_field(),则必须执行以下操作:

<?php
$post_ID = get_the_ID();
$parentpost_id = wp_get_post_parent_id( $post_ID );

if( have_rows('broschuren-download', $parentpost_id) ): while( have_rows('broschuren-download', $parentpost_id) ): the_row();

$images_images = get_sub_field('images');

if ( $images_images ):
?>
    <div class="hero__image-wrapper <?php if (count ($images_images) > 1)  echo 'heroslide';  ?>">
        <?php foreach( $images_images as $images_image ): ?>
        <img class="hero__image fit-cover" src="<?php echo $images_image['sizes']['large']; ?>"  />
        <?php endforeach; ?>
    </div>
<?php 
endif;
endwhile; endif; 
?>

【讨论】:

以上是关于ACF 从父页面获取转发器的子字段的主要内容,如果未能解决你的问题,请参考以下文章

从所有帖子中获取 ACF 转发器字段值,按子字段排序

从 ACF 转发器字段中获取 meta_key

一个复杂的查询,结合了WP课件功能,ACF转发器字段和寻找特定模板文件的元查询

基于 ACF 转发器子字段自定义分类法查询帖子

以编程方式更新转发器字段中特定组字段的值 - 高级自定义字段 (ACF) - Wordpress

当同一转发器字段的值以其他语言更新时,ACF 转发器字段中的值是不是为空?