我使用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>
如何获得标签?
答案 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'); ?>