Cum să obții eticheta din caseta de bifare ACF
Simt că ar trebui să fie simplu, dar din anumite motive nu reușesc să fac asta să funcționeze?
Am mai multe culori similare dar distincte într-o listă de produse. Trebuie să pot obține eticheta pentru a o afișa utilizatorului final (ca să vadă "portocaliu" în loc de "m_portocaliu"), dar am nevoie și de valoarea distinctă pentru a putea aplica clasa corespunzătoare elementului.
portocaliu : portocaliu
m_portocaliu : portocaliu
purpuriu : purpuriu
m_purpuriu : purpuriu
w_purpuriu : purpuriu
Codul meu:
<?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>" ;}?>
Am încercat să urmez instrucțiunile de la http://www.advancedcustomfields.com/resources/field-types/checkbox/ dar nu a funcționat și nu reușesc să înțeleg de ce?

Puteți încerca acest cod:
$field = get_field_object('color');
$colors = get_field('color'); // array cu valorile culorilor selectate
foreach($colors as $color){
echo "culoare selectată: ". $color. " cu eticheta: " . $field['choices'][ $color ];
}
unde etichetele sunt preluate prin get_field_object
conform linkului furnizat.
De asemenea, puteți utiliza print_r()
sau var_dump()
pentru a verifica ce este stocat în variabilele $field
și $colors
.

Am avut aceeași problemă și am rezolvat-o folosind verificări cu print_r()
.
Încearcă asta:
$field = get_field_object('culoare');
$colors = get_field('culoare');
foreach($colors as $key => $val) {
$label = $colors[$key];
echo 'Aceasta este eticheta ta: '. $field['choices'][$label];
}
'choices' este locul unde sunt stocate etichetele tale
