перечислите все метки и значения из типа группового поля в ACF

Мне действительно нужна помощь. Моя проблема в том, что я не могу показать метку из группового поля с помощью 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

Пожалуйста, кто-нибудь, помогите мне …

1

Решение

использование 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;
6

Другие решения

Что вы ожидаете в рамках 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'];

Надеюсь это поможет.

0