Cum să obții eticheta din caseta de bifare ACF

11 mar. 2013, 20:34:25
Vizualizări: 13.5K
Voturi: 1

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?

0
Toate răspunsurile la întrebare 2
1

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.

11 mar. 2013 22:24:44
Comentarii

Scuze dar asta nu funcționează!

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

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

22 apr. 2015 17:51:01