【问题标题】:How to list label value for checkboxes in ACF (advanced custom fields)如何在 ACF 中列出复选框的标签值(高级自定义字段)
【发布时间】:2018-07-16 10:11:43
【问题描述】:

我有一个复选框列表(大约 100 多个),并且想要循环获取“标签”值,而不必执行以下 100 多个项目。

<p>Colors: <?php the_field('colors'); ?></p>

复选框字段未设置为转发器或组(见屏幕截图)。

以下代码适用于 ACF 版本 4.4.12,但不适用于 ACF Pro 5.6.10。

<?php
$groupID = '2893';  // Package Inclusions
$package_inclusions1 = apply_filters('acf/field_group/get_fields', 
array(), $groupID);

foreach($package_inclusions1 as $k=>$v) {
  $data = get_field($v['name']);
  if($data[0] == 'Yes') {
    echo '<li class="package-inclusion">' . $v['label'] . '</li>';
  }
}
?>

显然,The filter has been removed in ACF5 and was not replaced.

有什么解决办法吗?我已经看够了,找不到解决方案。

编辑[解决方案]: 2018 年 7 月 24 日

向 ACF 支持人员提出了这个问题,这是他们提供的有效解决方案。

" 在 Pro 版本中删除了 acf/field_group/get_fields 过滤器,并在其位置引入了 acf_get_fields() 函数。你可以像这样使用这个函数:

$fields = acf_get_fields($group_id); "

【问题讨论】:

    标签: php wordpress advanced-custom-fields


    【解决方案1】:

    获取特定帖子/页面的字段列表非常简单

    $fields = get_field_objects($post_id, [$format_value], [$load_value]);
    

    或者您想获取所有字段并循环遍历它们以获取字段值和标签使用下面的代码:

    -> 用于测试使用下面的代码并检查 var_dump 打印的值

    $fields = get_field_objects();
    var_dump($fields);
    
    $fields = get_field_objects();
    
    if ($fields) {
        foreach ($fields as $field_name => $field) {
           $data = get_field($field_name);
    
           if ($data[0] == 'Yes') {
               echo '<li class="package-inclusion">' . $field['label'] . '</li>';
           }
        }
    }
    

    【讨论】:

    • 当你打印_r $fields时我得到了价值,但是,我如何打印code
    • 中国面盆和双冲水马桶
    • 镀铬浴室配件
    • 等等...
  • 我还编写了 foreach 循环来打印该标签及其值
  • 根据需要使用 foreach
  • 这就是我得到的,它仍然没有输出任何东西。 code $fields = get_field_objects(); if ($fields) { foreach ($fields as $k => $v) { $data = get_field($v['name']); if ($data[0] == 'Yes') { echo '
  • ' 。 $field['label'] 。 '
  • '; } } } 这是 var_dump 输出 -> pastebin.com/3EKzmVpV
  • 用这个来获取数据:$data = get_field($k['name']);并打印标签使用 $v['label'] 就像你现在使用循环一样
  • 猜你喜欢
    相关资源
    最近更新 更多
    热门标签