Мне действительно нужна помощь. Моя проблема в том, что я не могу показать метку из группового поля с помощью 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
Пожалуйста, кто-нибудь, помогите мне …
использование 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;
Что вы ожидаете в рамках 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'];
Надеюсь это поможет.