如何ACF列表标签不值

时间:2014-02-19 10:01:49

标签: php wordpress advanced-custom-fields

我使用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>

如何获得标签?

3 个答案:

答案 0 :(得分:1)

请查看有关get_field_object

的官方文档

底部有一个用法示例:

  

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

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

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

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

答案 1 :(得分:0)

使用get_field('platforms')代替使用has子字段。将相应的转发器字段名称放在“平台”的位置。平台是转发器字段的名称。

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

$platforms = get_field('platforms');
foreach( $platforms as $val ){
                        foreach($val as $key=>$v){
                            echo $key.'=>'.$v.'<br>';
                        }
                    }

答案 2 :(得分: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'); ?>