循环通过ACF显示所有可能的字段值?

EHe*_*man 4 wordpress loops field

我正在建立一个使用同位素来过滤页面上的帖子的网站.

我正在使用高级自定义字段(http://www.advancedcustomfields.com/),并创建了一个用户可以为"项目难度"设置字段的部分.

我试图遍历所有可能的选择,以创建用户可以单击以进行排序的链接列表(使用同位素).我已成功使用'标签',但我不想用难度级别标记每个项目,我希望用户在ACF下拉列表中创建帖子时选择它.

为了成功获取并显示链接形式的标签列表,我使用了以下代码:

<?php
$tags = get_tags();
  $html = '<div class="post_tags">';
  foreach ( $tags as $tag ) {
  $tag_link = get_tag_link( $tag->term_id );

  $html .= "<a data-filter=.{$tag->name} title='{$tag->name} Tag' class='{$tag->slug}'>";
  $html .= "{$tag->name}</a>";
}
$html .= '</div>';
echo $html; 
?>
Run Code Online (Sandbox Code Playgroud)

现在我尝试改变它,使用这样的代码使ACF工作:

  <?php
   $fields = get_fields();
   $html = '<div class="post_tags">';
  foreach ( $fields as $field ) {
     $tag_link = get_fields( $field->task_difficulty );

    $html .= "<a data-filter=.{$field->name} title='{$field->name} Tag' class='{$field->slug}'>";
    $html .= "{$field->name}</a>";
  }
   $html .= '</div>';
   echo $html;
  ?>
Run Code Online (Sandbox Code Playgroud)

但它输出的是:

<a data-filter="." title=" Tag" class=""></a>
Run Code Online (Sandbox Code Playgroud)

而且它没有添加任何正确的数据.显然,我的一些价值观已经消失.我如何遍历可能的选项,并将它们添加为链接,就像我对标记一样?

谢谢

EHe*_*man 9

其他任何有困难的人,我通过以下方式解决了这个问题:

        // must add field key of the field you want
        $field_key = "field_52a087a80a4c6";
        $field = get_field_object($field_key);

        if( $field )
        {
            echo '<div class="acf-task-difficulty-values">';
                foreach( $field['choices'] as $k => $v )
                {
                    echo '<a data-filter=.'.$k.' onclick="return false;">' . $v . '</a>';
                }
            echo '</div>';
        }
Run Code Online (Sandbox Code Playgroud)

然后,您可以在CSS文件中设置样式.

  • 帮了很多忙!要显示字段键,您应该在ACF中单击"屏幕设置"选项卡(或其右侧的任何名称),您将看到它作为最后一个选项. (2认同)