ACF 循环表复选框(WordPress)的问题
Posted
技术标签:
【中文标题】ACF 循环表复选框(WordPress)的问题【英文标题】:Problem with ACF Loop table checkbox (WordPress) 【发布时间】:2020-08-30 18:53:44 【问题描述】:我正忙于一个 WordPress 网站并使用高级自定义字段插件。制作表格时遇到问题,因此有对或错的选项。我将添加到目前为止结果的屏幕截图。
这是当前代码:
<div id="abonnementen-table">
<table class="table table-hover">
<thead>
<tr>
<th>Specificaties</th>
<?php foreach($abonnementen as $abonnement)?>
<th><?php echo $abonnement->post_title;?></th>
<?php ?>
</tr>
</thead>
<tbody>
<?php
$field = get_field_object('uitgebreide_specs',$abonnement->ID);
$choices = $field['choices'];
foreach ($choices as $choice_value => $choice_label)
?>
<tr>
<td><?php echo $choice_label;?></td>
<?php
foreach($abonnementen as $abonnement)
$values = get_field('uitgebreide_specs',$abonnement->ID);
$field = get_field_object('uitgebreide_specs',$abonnement->ID);
$choices = $field['choices'];
foreach ($values as $value)
if ($value['value'] == $choice_value)
echo '<td><i class="fas fa-check"></i></td>';
?>
<?php ?>
</tr>
<?php ?>
</tbody>
</table>
</div>
问题出在上面的代码中,如果选中它可以正常工作,但如果未选中该选项,则会出现问题。截图会告诉你我的问题:
我已经尝试在这一点上添加一个 else:
if ($value['value'] == $choice_value)
echo '<td><i class="fas fa-check"></i></td>';
else
echo '<td></td>'; // unchecked
但是我的列太多了 - 请参阅下面的屏幕截图。谁能告诉我我做错了什么?
谢谢
【问题讨论】:
介意分享 $values 和 $choices 吗? 我认为 foreach 循环太多了,所以我认为将它们结合起来是一个不错的计划:) 【参考方案1】:因此,如果您可以提供 ACF 字段的导出,我可以提供更好的答案。但是,像这样添加未选中的td
怎么样:
$_td = 0;
foreach ( $values as $value )
if ( $value['value'] == $choice_value )
echo '<td><i class="fas fa-check"></i></td>';
$_td++;
if ( ! $_td ) // add it if a TD hasn't been echoed
echo '<td></td>'; // unchecked
或者使用array_column()
和in_array()
的更简单的版本:(这将替换整个foreach ($values as $value) ...
)
$values = array_column( $values, 'value' );
if ( in_array( $choice_value, $values ) )
echo '<td><i class="fas fa-check">Y</i></td>';
else
echo '<td></td>'; // unchecked
我希望那些帮助?
【讨论】:
以上是关于ACF 循环表复选框(WordPress)的问题的主要内容,如果未能解决你的问题,请参考以下文章
在 foreach 循环中获取 ACF 字段数据 - wordpress
在 Wordpress 自定义帖子类型循环中使用 ACF 分类字段作为变量