1

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

请任何人帮助我...

4

2 回答 2

8

用于get_row()获取子字段:

$subfields = get_row();

并用于get_sub_field_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;
于 2018-08-23T11:42:18.333 回答
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'];

希望这可以帮助。

于 2018-08-20T08:04:10.050 回答