Ottenere l'etichetta da una checkbox ACF

11 mar 2013, 20:34:25
Visualizzazioni: 13.5K
Voti: 1

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?

0
Tutte le risposte alla domanda 2
1

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.

11 mar 2013 22:24:44
Commenti

Mi dispiace ma questo non funziona!

Fred K Fred K
22 mag 2014 13:26:13
0

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

22 apr 2015 17:51:01