我真的需要一些帮助,我的问题是我无法使用ACF从组字段中显示标签
下面的脚本显示了名称和值,我需要显示“标签”及其“值”,我什么都找不到。
if( have_rows('product_specifications') ):
while( have_rows('product_specifications') ): the_row();
$subfields = get_field('product_specifications');
if( $subfields ) { ?>
<ul>
<?php
foreach ($subfields as $spec => $value) {
if ( !empty($value) ) { ?>
<li><?php echo $spec; ?> : <?php echo $value; ?></li>
<?php }
} ?>
</ul>
<?php }
endwhile;
endif;
这是我当前的输出:
lamp_type : E27
wattage : 1x 60W Max
globe_included : 1
colour_cord : Clear
何时应:
Lamp Type : E27
Wattage : 1x 60W Max
Globe : 1
Colour Cord : Clear
请任何人帮助我...
答案 0 :(得分:6)
使用get_row()
获取子字段:
$subfields = get_row();
并使用get_sub_field_object()
获取子字段 object :
$field = get_sub_field_object( $key );
因此,请尝试以下操作:(无需重新缩进,以便您可以轻松地与代码进行比较)
if( have_rows('product_specifications') ):
while( have_rows('product_specifications') ): the_row();
if( $subfields = get_row() ) { ?>
<ul>
<?php
foreach ($subfields as $key => $value) {
if ( !empty($value) ) { $field = get_sub_field_object( $key ); ?>
<li><?php echo $field['label']; ?> : <?php echo $value; ?></li>
<?php }
} ?>
</ul>
<?php }
endwhile;
endif;
答案 1 :(得分:0)
您正在foreach
循环中使用get_field_object()
函数。
在这里,您可以获取任何字段的标签和值。
有关get_field_object()
的示例/用法,请查看https://www.advancedcustomfields.com/resources/get_field_object/。
例如,您将拥有:
$field = get_field_object($spec);
echo $field['label'] . ': ' . $field['value'];
希望这会有所帮助。