【问题标题】:Loop through ACF to display all possible field values?通过 ACF 循环显示所有可能的字段值?
【发布时间】:2013-12-22 14:17:40
【问题描述】:

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

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

我正在尝试遍历所有可能的选择以创建用户可以单击以进行排序的链接列表(使用同位素)。我已经使用 'tags' 成功完成了这项工作,但我不想用难度级别标记每个项目,我希望用户在 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>

它没有添加任何正确的数据。显然我的一些价值观是错误的。如何遍历可能的选项,并像使用标签一样将它们添加为链接?

谢谢

【问题讨论】:

  • 在您的 $fields = get_fields(); 行之后添加 var_dump( $fields );。你的$fields 值是什么样的?

标签: wordpress loops field


【解决方案1】:

其他遇到此问题的人,我通过执行以下操作解决了该问题:

        // 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 文件中设置它的样式。

【讨论】:

  • 帮了大忙!要显示字段键,您应该在 ACF 中单击“屏幕设置”选项卡(或任何名称,在右上角),您会看到它是最后一个选项。
猜你喜欢
  • 2020-12-11
  • 2021-06-23
  • 2018-01-01
  • 2019-11-17
  • 1970-01-01
  • 2020-02-06
  • 2021-08-07
  • 2020-03-17
  • 2016-02-04
相关资源
最近更新 更多