添加 class 到 ACF 多 select

Add class to ACF multi select

下面的情况我折腾了两个小时,还是没有找到解决办法。希望你们能帮助我。这是关于以下内容:

我使用 ACF 从多 select 菜单中制作 selection。我想显示所有选项,并且想在 selected 值中添加 class。

到目前为止,您会在下面找到我的代码。这会输出所有的选择。但是我不知道如何检查选择是否已经 selected 或没有。

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

if ( $features ):

    echo '<ul class="checks">';
        foreach ( $choices as $choice) {
            echo '<li>'. $choice .'</li>';
        }
    echo '</ul>';

endif;

非常感谢您的帮助!

您可以检查当前$choice的key是否作为$values数组中的值。

如果您 var_dump $features 数组,您会看到 $values 数组包含值的键,而 $choices 数组包含这两个键。

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;