返回所有带有 ACF 字段和 foreach 循环的数组值
Posted
技术标签:
【中文标题】返回所有带有 ACF 字段和 foreach 循环的数组值【英文标题】:Return all array values with ACF fields and foreach loop 【发布时间】:2021-07-03 04:36:35 【问题描述】:我在 ACF 中创建了一个复选框字段,并希望一次又一次地循环该字段并显示所有这些值。首先,我按照 ACF 文档显示的方式进行了尝试,但以下代码仅生成第一个选中复选框的值。
function ms_get_department()
$departments = get_field('vakgebied');
if($departments):
foreach($departments as $department):
echo '<span class="department-text">' . $department['label'] . '</span>';
endforeach;
endif;
我也尝试将所有值存储在一个数组中,但在下面的代码中它只显示“数组”并且不知道在这种情况下如何显示所有这些数据。
function ms_get_department()
$departments = get_field('vakgebied');
$deps = array();
if($departments):
foreach($departments as $department):
$deps[] = $department['label'];
// $test = '<span class="department-text">' . $department['label'] . '</span>';
endforeach;
return $deps;
endif;
有谁知道我可以如何以适当的方式解决这个问题?
【问题讨论】:
试试print_r($deps);
【参考方案1】:
不清楚您在哪里添加此功能。如果它在单页上,那么代码应该可以工作;但是,如果它在任何其他页面上,那么您需要将帖子 ID 传递给 ACF 字段。
function ms_get_department()
$departments = get_field('vakgebied', 123); // 123 being the post ID
$deps = array();
if($departments):
foreach($departments as $department):
$deps[] = $department['label'];
// $test = '<span class="department-text">' . $department['label'] . '</span>';
endforeach;
return $deps;
endif;
要检查的另一件事是,确保 ACF 字段同时返回“标签”和“值”。
【讨论】:
我在一个短代码中使用它,我放置在一个存档页面和一个单一的文件中,但两者都不起作用。也是返回标签和值的 ACF 字段以上是关于返回所有带有 ACF 字段和 foreach 循环的数组值的主要内容,如果未能解决你的问题,请参考以下文章