如何在高级自定义字段中列出带有标签和值的转发器子字段?

时间:2016-04-19 15:32:46

标签: wordpress advanced-custom-fields

我搜索过,找不到任何解决方案来列出子字段标签及其值的转发器字段行。

在我的情况下,我想列出带有Label和value的转发器字段子字段。 例如:

'子字段标签'='价值'

有没有办法做到这一点?

2 个答案:

答案 0 :(得分:1)

如果您知道要从Repeater Field检索的标签,只需使用标准方法:

if( have_rows('repeater_field_name') ):
    while ( have_rows('repeater_field_name') ) : the_row();
        echo 'Label = ' . get_sub_field('sub_field_name') . '<br>';
    endwhile;
endif;

如果您不在单个帖子/页面或The Loop之外,只需将$post_id作为第二个参数添加到您的ACF函数调用中。例如:have_rows('repeater_field_name', $post_id)

如果您不知道标签名称,我想您可以使用get_fields()获取当前帖子的所有自定义字段的数组并进行迭代。类似的东西:

$fields = get_fields($post->ID);
foreach ($fields as $field_type => $field) {
    if ( $field_type == 'repeater_field' ) {
        foreach ($field as $row) {
            foreach ($row as $label => $value) {
                // In this case you should be aware that
                // $value could be an Array too...
                echo $label . ' = ' . $value;                    
            }
        }
    }
}

无论如何,我建议你看看ACF Documentation。它完整​​,清晰,包含大量代码片段,涵盖了最常见的用途。

答案 1 :(得分:1)

 <?php $args = array('post_type' => 'post');
            $the_query = new WP_Query( $args );
            query_posts( $args );
            while ( have_posts() ) : the_post();
   $field = get_field_object('field_name'); 
   echo $field['label']; //print label name
   echo the_field('field_name'); //and its value
    endwhile; wp_reset_query(); ?>

请向您寻求希望帮助