表中的 ACF 中继器字段 - 在 PHP 模板中

Posted

技术标签:

【中文标题】表中的 ACF 中继器字段 - 在 PHP 模板中【英文标题】:ACF Repeater Fields in table - Within PHP Template 【发布时间】:2020-07-21 21:23:00 【问题描述】:

我正在使用 ACF 在我的 Wordpress 模板文件的表格中显示一个重复字段。字段正在显示 - 但是该表似乎为每一行创建一个新的“表”,而不是在同一个表中包含两行子字段数据。

这是我的代码:

<?php if(get_field('monthly_expenses')): ?>

<ul>

<?php while(has_sub_field('monthly_expenses')): ?>

<table>
<tbody>
<tr>
<td><strong>&nbsp;Monthly Expense</strong></td>
<td><strong>Estimated Amount</strong></td>
<td><strong>Registered Supplier</strong></td>
</tr>
<tr>
<td><?php the_sub_field('monthly_expense'); ?></td>
<td><?php the_sub_field('estimated_amount'); ?></td>
<td><?php the_sub_field('registered_supplier'); ?></td>
</tr>
<tr>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
<tr>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
</tbody>
</table>
<!-- DivTable.com -->


<?php endwhile; ?>

</ul>

这就是它的显示方式。我需要两行信息(电力行和电话行)都在第一个表中,而不是在单独的表中。

【问题讨论】:

【参考方案1】:

while 循环中的所有内容都针对每个子字段重复。因此,您需要将输出内容限制为仅表行,并像这样摆脱空行:

<?php if(get_field('monthly_expenses')): ?>

<ul>
<table>
<tbody>
<tr>
<td><strong>&nbsp;Monthly Expense</strong></td>
<td><strong>Estimated Amount</strong></td>
<td><strong>Registered Supplier</strong></td>
</tr>

<?php while(has_sub_field('monthly_expenses')): ?>

<tr>
<td><?php the_sub_field('monthly_expense'); ?></td>
<td><?php the_sub_field('estimated_amount'); ?></td>
<td><?php the_sub_field('registered_supplier'); ?></td>
</tr>
<!-- DivTable.com -->

<?php endwhile; ?>
</tbody>
</table>

</ul>

我已经把&lt;ul&gt; 留在了那里,但是我不知道它最初的用途。另外,我希望你关闭if 块。

【讨论】:

以上是关于表中的 ACF 中继器字段 - 在 PHP 模板中的主要内容,如果未能解决你的问题,请参考以下文章

ACF 中继器子字段 Shuffle(wordpress 高级自定义字段)

Wordpress ACF 中继器字段 - 仅拉入前 2 个字段

ACF 中继器字段仅显示一行

ACF 中继器字段和 Clearfix / 显示时的样式

如果第一个 ACF 中继器字段为空,则打印内容

搜索和显示 ACF 中继器子字段