Получение метки из ACF чекбокса

11 мар. 2013 г., 20:34:25
Просмотры: 13.5K
Голосов: 1

Кажется, это должно быть просто, но по какой-то причине у меня не получается заставить это работать.

У меня есть несколько похожих, но различных цветов в списке продуктов. Мне нужно получить метку для отображения конечному пользователю (чтобы он видел "оранжевый" вместо "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/, но это не сработало, и я не могу понять, в чем проблема?

0
Все ответы на вопрос 2
1

Вы можете попробовать это:

$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.

11 мар. 2013 г. 22:24:44
Комментарии

Извините, но это не работает!

Fred K Fred K
22 мая 2014 г. 13:26:13
0

У меня была такая же проблема, и я решил её с помощью проверок print_r().

Попробуйте это:

$field = get_field_object('color'); 
$colors = get_field('color');

foreach($colors as $key => $val) {
    $label = $colors[$key];
    echo 'Это ваша метка: '. $field['choices'][$label]; 
}

'choices' — это место, где хранятся ваши метки

22 апр. 2015 г. 17:51:01