2015-07-13 1 views
1

Я боролся в течение двух часов со следующей ситуацией, и я до сих пор не нашел решения. Надеюсь, вы, ребята, можете мне помочь. Речь идет о следующем:Добавить класс в ACF multi select

Я использую ACF, чтобы сделать выбор из меню multi select. Я хочу показать все варианты, и я хочу добавить класс к выбранным значениям.

Ниже вы найдете мой код. Это выводит все варианты. Но я не знаю, как проверить, выбран ли выбор или нет.

Большое спасибо за помощь!

ответ

2

Вы можете проверить, является ли ключ текущего $ выбора значением в массиве $ values.

Если вы var_dump массив $ features, вы увидите, что массив $ values ​​содержит ключи значений, а массив $ options содержит оба из них.

var_dump пример:

$features['value'] => Array 
     (
      [0] => color1 
     ) 

$features['choices'] => Array 
     (
      [color1] => red 
      [color2] => yellow 
      [color3] => green 
     ) 

Код:

$features = get_field_object('features'); 
$choices = $features['choices']; 
$values = $features['value']; 

if ($features): 

    echo '<ul class="checks">'; 
    foreach ($choices as $key => $choice) { 
     $class = in_array($key, $values) ? 'class="selected"' : ''; 
     echo '<li ' . $class . '>'. $choice .'</li>'; 
    } 
    echo '</ul>'; 

endif; 
+0

Благодаря @Laxmana! Вы сделали мой день!! – arvanderkamp

+0

Добро пожаловать! – Laxmana