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

时间:2013-12-05 15:04:59

标签: 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; 
?>

现在我已经尝试改变它以使用这样的代码来使用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;
  ?>

但输出的是:

<a data-filter="." title=" Tag" class=""></a>

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

由于

1 个答案:

答案 0 :(得分: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>';
        }

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