我正在构建一个使用同位素来过滤页面上帖子的网站。
我使用高级自定义字段(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>
并且它没有添加任何正确的数据。显然,我的一些价值观已经消失。我如何遍历可能的选项,并将它们添加为链接,就像我对标签一样?
由于
答案 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文件中设置样式。