使用 ACF 中复选框字段的多个值切换大小写
Switch case with multiple values from a checkbox field in ACF
我有一个包含 5 个值的高级自定义字段 复选框。用户最多可以检查两个值。
现在我想根据输入显示图像。我想在 PHP 中使用 switch case,但无法正常工作。我想要这样的东西
如果值 = A 则显示图像 a.jpg
如果值 = B 则显示图像 b.jpg
如果值 = C 则显示图像 c.jpg
如果值 = D 则显示图像 d.jpg
如果值 = E 则显示图像 e.jpg
如果值 = A and B 则显示图像 a-b.jpg
如果值 = B and C 则显示图像 b-c.jpg
如果值 = B and D 则显示图像 b-d.jpg
等..
我有这样的东西:
<?php
$checkbox = get_field('my_checkbox');
switch($checkbox){
case "A":
echo "<img src="a.jpg">";
break;
case "B":
echo "<img src="b.jpg">";
break;
case ("A" && "B"):
echo "<img src="a-b.jpg">";
break;
case ("B" && "C"):
echo "<img src="b-c.jpg">";
break;
// Default
default:
echo "No choice made yet";
break;
}
但这不起作用。有人能让我走上正轨吗?
谢谢!
Switch Case 结构基本上在第一次匹配时触发。您需要做的是首先识别给出多个答案而不是单个值的情况。您可以使用下面的示例进行扩展。不要忘记在 ACF 复选框上设置条件逻辑,以防止用户选择超过 2 个选项(因为看起来您没有包含超过 2 个值的图像)
<?php
$checkbox = get_field('my_checkbox');
$checkbox = array( $checkbox );
if( $checkbox && in_array( array( 'A' , 'B' ), $checkbox) ) {
$key = "a-b.jpg";
} elseif ( $options && in_array(array('a'), $checkbox) ) {
$key = "a.jpg";
} elseif ($options && in_array(array('b'), $checkbox) ) {
$key = "b.jpg";
}
?>
我有一个包含 5 个值的高级自定义字段 复选框。用户最多可以检查两个值。 现在我想根据输入显示图像。我想在 PHP 中使用 switch case,但无法正常工作。我想要这样的东西
如果值 = A 则显示图像 a.jpg
如果值 = B 则显示图像 b.jpg
如果值 = C 则显示图像 c.jpg
如果值 = D 则显示图像 d.jpg
如果值 = E 则显示图像 e.jpg
如果值 = A and B 则显示图像 a-b.jpg
如果值 = B and C 则显示图像 b-c.jpg
如果值 = B and D 则显示图像 b-d.jpg
等..
我有这样的东西:
<?php
$checkbox = get_field('my_checkbox');
switch($checkbox){
case "A":
echo "<img src="a.jpg">";
break;
case "B":
echo "<img src="b.jpg">";
break;
case ("A" && "B"):
echo "<img src="a-b.jpg">";
break;
case ("B" && "C"):
echo "<img src="b-c.jpg">";
break;
// Default
default:
echo "No choice made yet";
break;
}
但这不起作用。有人能让我走上正轨吗? 谢谢!
Switch Case 结构基本上在第一次匹配时触发。您需要做的是首先识别给出多个答案而不是单个值的情况。您可以使用下面的示例进行扩展。不要忘记在 ACF 复选框上设置条件逻辑,以防止用户选择超过 2 个选项(因为看起来您没有包含超过 2 个值的图像)
<?php
$checkbox = get_field('my_checkbox');
$checkbox = array( $checkbox );
if( $checkbox && in_array( array( 'A' , 'B' ), $checkbox) ) {
$key = "a-b.jpg";
} elseif ( $options && in_array(array('a'), $checkbox) ) {
$key = "a.jpg";
} elseif ($options && in_array(array('b'), $checkbox) ) {
$key = "b.jpg";
}
?>