Ottenere l'etichetta da una checkbox ACF
Sembra semplice ma per qualche motivo non riesco a farlo funzionare?
Ho diversi colori simili ma distinti in un elenco di prodotti. Devo poter ottenere l'etichetta da mostrare all'utente finale (così vedono "arancione" invece di "m_orange") ma ho anche bisogno che il valore sia distinto per applicare la classe appropriata all'elemento.
orange : arancione
m_orange : arancione
purple : viola
m_purple : viola
w_purple : viola
Il mio codice:
<?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>" ;}?>
Ho provato a seguire le istruzioni su http://www.advancedcustomfields.com/resources/field-types/checkbox/ ma non ha funzionato e non riesco a capire il motivo?

Puoi provare questo
$field = get_field_object('color');
$colors = get_field('color'); // array di valori di colore selezionati
foreach($colors as $color){
echo "colore selezionato: ". $color. " con etichetta: " . $field['choices'][ $color ];
}
dove le etichette vengono recuperate da get_field_object
secondo il link che hai fornito.
Potresti anche usare print_r()
o var_dump()
per verificare cosa è memorizzato nelle variabili $field
e $colors
.

Ho avuto lo stesso problema e l'ho risolto con controlli tramite print_r()
.
Prova questo:
$field = get_field_object('color');
$colors = get_field('color');
foreach($colors as $key => $val) {
$label = $colors[$key];
echo 'Questa è la tua etichetta: '. $field['choices'][$label];
}
'choices' è dove sono memorizzate le tue etichette
