Получение метки из ACF чекбокса
Кажется, это должно быть просто, но по какой-то причине у меня не получается заставить это работать.
У меня есть несколько похожих, но различных цветов в списке продуктов. Мне нужно получить метку для отображения конечному пользователю (чтобы он видел "оранжевый" вместо "m_orange"), но также мне нужно уникальное значение, чтобы применить соответствующий класс к элементу.
orange : оранжевый
m_orange : оранжевый
purple : фиолетовый
m_purple : фиолетовый
w_purple : фиолетовый
Мой код:
<?php while ( $the_query->have_posts() ) : $the_query->the_post();
$color = get_field('color');
?>
<?php foreach($color as $color_list){echo "<li >$color_list <span class=\"color_text_slash\"> / </span> </li>";}?>
<?php foreach($color as $color_class){echo "<li class=\"$color_class\"></li>" ;}?>
Я пытался следовать инструкциям на http://www.advancedcustomfields.com/resources/field-types/checkbox/, но это не сработало, и я не могу понять, в чем проблема?

Вы можете попробовать это:
$field = get_field_object('color');
$colors = get_field('color'); // массив выбранных значений цветов
foreach($colors as $color){
echo "выбранный цвет: ". $color. " с меткой: " . $field['choices'][ $color ];
}
где метки получаются через get_field_object
согласно предоставленной ссылке.
Также можно использовать print_r()
или var_dump()
для проверки содержимого переменных $field
и $colors
.

У меня была такая же проблема, и я решил её с помощью проверок print_r()
.
Попробуйте это:
$field = get_field_object('color');
$colors = get_field('color');
foreach($colors as $key => $val) {
$label = $colors[$key];
echo 'Это ваша метка: '. $field['choices'][$label];
}
'choices' — это место, где хранятся ваши метки
