我搜索过,找不到任何解决方案来列出子字段标签及其值的转发器字段行。
在我的情况下,我想列出带有Label和value的转发器字段子字段。 例如:
'子字段标签'='价值'
有没有办法做到这一点?
答案 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(); ?>
请向您寻求希望帮助