Php 使用ACF对嵌套中继器字段输出进行分组
我试图输出嵌套的ACF中继器字段,以便输出如下:Php 使用ACF对嵌套中继器字段输出进行分组,php,wordpress,advanced-custom-fields,Php,Wordpress,Advanced Custom Fields,我试图输出嵌套的ACF中继器字段,以便输出如下: <?php foreach ($sponsor_group_names as $group): ?> <h2 class="text-primary mb-3">{{$group}}</h2> <div class="row" style="margin-bottom: 0 !important"> <?php $iterator = 0; foreach (
<?php foreach ($sponsor_group_names as $group): ?>
<h2 class="text-primary mb-3">{{$group}}</h2>
<div class="row" style="margin-bottom: 0 !important">
<?php
$iterator = 0;
foreach ($donor_names_list as $donor): ?>
<div class="col-md-4 contact-card" style="min-width: 300px;">
<div class="row" style="margin-bottom: 0 !important">
<div class="col-lg col-6"><img src="{{$donor_photo_urls[$iterator]}}" class="donor-photo"></div> <!--https://via.placeholder.com/100-->
<div class="col-lg col-6 donor-info"> <p>{{$donor}} </p> <p> {{$donor_company_names_list[$iterator]}} </p></div>
</div>
</div>
<?php $iterator++;
endforeach; ?>
</div>
<?php endforeach; ?>
第1组名称
第1组值数组:
- 捐赠者姓名
- 公司名称
- 照片URL
- 捐赠者姓名
- 公司名称
- 照片URL
$sponsor_group_names = array();
$donor_names_list = array();
$donor_company_names_list = array();
$donor_photo_urls = array();
$donors_group_list = array();
if (have_rows('sponsor_group')):
while ( have_rows('sponsor_group')) : the_row();
$sponsor_group_name = get_sub_field('sponsorship_group_name');
array_push($sponsor_group_names, $sponsor_group_name);
if (have_rows('group_donors')):
while ( have_rows('group_donors')) : the_row();
$donors_group = get_field('group_donors');
array_push($donors_group_list, $donors_group);
$donor_name = get_sub_field('donor_name');
array_push($donor_names_list, $donor_name);
$donor_company_name = get_sub_field('donor_company_name');
array_push($donor_company_names_list, $donor_company_name);
$donor_photo = get_sub_field('donor_photo');
array_push($donor_photo_urls, $donor_photo);
endwhile;
endif;
endwhile;
endif;
我的输出如下:
<?php foreach ($sponsor_group_names as $group): ?>
<h2 class="text-primary mb-3">{{$group}}</h2>
<div class="row" style="margin-bottom: 0 !important">
<?php
$iterator = 0;
foreach ($donor_names_list as $donor): ?>
<div class="col-md-4 contact-card" style="min-width: 300px;">
<div class="row" style="margin-bottom: 0 !important">
<div class="col-lg col-6"><img src="{{$donor_photo_urls[$iterator]}}" class="donor-photo"></div> <!--https://via.placeholder.com/100-->
<div class="col-lg col-6 donor-info"> <p>{{$donor}} </p> <p> {{$donor_company_names_list[$iterator]}} </p></div>
</div>
</div>
<?php $iterator++;
endforeach; ?>
</div>
<?php endforeach; ?>
{{$group}
{{$provider}{{{$provider\u company\u names\u list[$iterator]}
此输出为1和2提供了不同的组名,但为公司名称、照片url和捐赠者名称输出了相同的信息。理想情况下,我希望设置我的代码,使其使用键=>值
如$provider\u photo\u url['group1']
,但我以前试图模仿我在ACF支持论坛上看到的内容,结果导致输出为空
最后,我希望为每个组名打印唯一的数组。谢谢你的帮助 我假设您的中继器是由
组捐赠者
设置为赞助商组
中的嵌套中继器。在中继器上使用get\u field()
函数实际上会返回一个包含所有子字段和其中任何中继器的关联数组
因此,您应该能够执行以下操作来输出所有组及其嵌套的捐赠者
foreach (get_field('sponsor_group') as $sponsorGroup) : ?>
<h2 class="text-primary mb-3"><?= $sponsorGroup['sponsorship_group_name'] ?></h2>
<div class="row" style="margin-bottom: 0 !important">
<?php foreach ($sponsorGroup['group_donors'] as $groupDonor) : ?>
<div class="col-md-4 contact-card" style="min-width: 300px;">
<div class="row" style="margin-bottom: 0 !important">
<div class="col-lg col-6"><img src="<?= $groupDonor['donor_photo'] ?>" class="donor-photo"></div>
<div class="col-lg col-6 donor-info">
<p><?= $groupDonor['donor_name'] ?></p>
<p><?= $groupDonor['donor_company_name'] ?></p>
</div>
</div>
</div>
<?php endforeach ?>
</div>
<?php endforeach;
foreach(作为$sponsorGroup获取_字段(“赞助商_组”):?>
“class=”捐赠者照片“>
你能发布你的转发器设置的截图(或JSON)吗?