1

我使用 ACF 中继器从列表中生成结果,一切正常。但是,我想显示列表标签,而不是显示列表值。

这是代码:

        <ul class="notifications-content">
            <?php while(has_sub_field('notification')):
                $house = get_sub_field('house');    
                $year  = get_sub_field('year');
                $date = DateTime::createFromFormat('Ymd', get_sub_field('date'));
                $newDate = date("D j F", strtotime($date->format('d-m-Y')));
                ?>
                <li class="<?php echo safe_url($house); ?> <?php echo $year; ?>">
                    <h2 class="black"><?php echo str_replace($replace, '', get_sub_field('message')); ?></h2>
                    <h3 class="interstatebold white uppercase"><?php echo $house; echo $year ? ", $year"  : ''; echo ' | '.$newDate; ?></h3>
                    <?php echo get_sub_field('urgent') ? '<div class="circle"></div>' : ''; ?>
                </li>
            <?php endwhile; ?>
        </ul>

我如何获得标签?

4

3 回答 3

1

看看这个关于get_field_object的官方文档

底部有一个使用示例:

获取一个字段对象并显示它的值

$field_name = "text_field";
$field = get_field_object($field_name);

echo $field['label'] . ': ' . $field['value'];

您可以在中继器中使用它来获取所需的 field_object 并显示标签。

于 2014-02-26T13:10:30.607 回答
0

不要使用 has 子字段,而是使用 get_field('platforms')。将相应的转发器字段名称替换为“平台”。Platforms 是转发器字段的名称。

通过使用带有 key=>value 对的 foreach 循环,您可以获得键和值。尝试使用以下代码。

$platforms = get_field('platforms');
foreach( $platforms as $val ){
                        foreach($val as $key=>$v){
                            echo $key.'=>'.$v.'<br>';
                        }
                    }
于 2014-02-20T07:14:24.277 回答
0

您可以像调用字段值一样通过这些函数(添加到functions.php)来使用它:


function get_field_label($slug) {
    $field = get_field_object($slug); 
    return $field['label'];
}

用法:

<?php echo get_field_label('field-slug'); ?>


function the_field_label($slug) {
    $field = get_field_object($slug); 
    echo $field['label'];
}

用法:

<?php the_field_label('field-slug'); ?>


于 2016-01-20T18:55:43.630 回答