首页 > 解决方案 > Group ACF Wordpress 中的中继器

问题描述

我正在使用 Wordpress 的高级自定义字段并尝试在组内循环转发器。我得到的只是“注意:数组到字符串的转换......”

出了什么问题以及如何解决?

<?php if( have_rows('start_horlurar') ): while ( have_rows('start_horlurar') ) : the_row();  ?>

<?php $horlur = get_sub_field('horlur'); ?>

<?php if( have_rows( $horlur['arsmodeller_lankar']) ): while ( have_rows($horlur['arsmodeller_lankar']) ) : the_row();  ?>

<?php echo get_sub_field('lank'); ?>

<?php endwhile; endif; ?>

<?php endwhile; endif; ?>

标签: phpwordpresswhile-loopnested-loopsadvanced-custom-fields

解决方案


我相信这个答案是正确的,但对于那些寻求通用实现的人来说似乎还不够清楚。

<?php

if( have_rows('your_group') ): while ( have_rows('your_group') ) : the_row(); 

    if( have_rows('your_repeater') ): while ( have_rows('your_repeater') ) : the_row();       

        echo get_sub_field('repeater_sub_field');

    endwhile; endif;

endwhile; endif;

?>

通常对于组,您可以使用以下方法访问特定的子字段:

<?php 

$group_var = get_field['your_group']; 

$group_sub_field_var = $group_var['group_sub_field']

?>

但是,对于嵌套在组内的中继器,您似乎无法使用此策略,并且必须先循环通过一个组have_rows()才能到达中继器。

如果您查看ACF 上的组文档,它会提到如何像中继器一样循环组。此外,have_rows()文档还有更多关于使用have_rows().


推荐阅读