列出ACF中组字段类型的所有标签和值

时间:2018-08-19 08:04:28

标签: php wordpress advanced-custom-fields custom-fields acfpro

我真的需要一些帮助,我的问题是我无法使用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

请任何人帮助我...

2 个答案:

答案 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'];

希望这会有所帮助。