返回所有带有 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 循环的数组值的主要内容,如果未能解决你的问题,请参考以下文章

ACF wordpres: Foreach: data-type = 'group'

Foreach 循环遍历 cpt 类别以使用 ACF 值

带有 ACF 嵌套字段的 WP MetaQuery

从所有帖子中获取 ACF 转发器字段值,按子字段排序

如何在页面模板中将ACF关系帖子显示为循环

ACF 页面 while 循环在循环时中断页脚