2014-02-19 37 views
1

即时通讯使用ACF中继器生成列表的结果,这是工作正常。但是,而不是显示列表值,我想显示列表标签。如何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

而不是使用有子字段,使用get_field('平台')。将相应的中继器字段名称替换为“平台”。平台是中继器领域的名称。

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

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

看看这个官方文档大约get_field_object

有一个在底部的使用例子:

获取一个字段对象,并使用它显示它的价值

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

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

你可以在你的转发器中使用它来抓取t你想要的帽子field_object并显示标签。

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'); ?>