我有一个高级自定义字段复选框,我需要对其进行一些检查。如果在后端勾选复选框,则会在前端输出适当的图像。我有一些“有效”的代码,但我认为应该有一种更有效的方法来实现它。
这是密码
$gluten = \'gluten.png\';
$vegan = \'vegan.png\';
$vegetarian = \'vegetarian.png\';
$dish = get_field(\'diet_friendly\');
if( in_array( \'gluten\', get_field(\'diet_friendly\') ) )
{
echo \'<img src="\';
echo get_template_directory_uri().\'/images/\'.$gluten.\'" alt="Gluten Free" />\';
}
if( in_array( \'vegan\', get_field(\'diet_friendly\') ) )
{
echo \'<img src="\';
echo get_template_directory_uri().\'/images/\'.$vegan.\'" alt="Vegan Friendly" />\';
}
下面是复选框字段的数组
array(2) { [0]=> string(6) "gluten" [1]=> string(5) "vegan" }
SO网友:Schism
您正在为$dish
, 但是不使用它。。。
请尝试以下操作。它利用了您的“面筋”图像命名为gluten.png
, 等等。只需将添加到$images
大堆
$images = array(
"gluten" => "Gluten Free",
"vegan" => "Vegan Friendly",
"vegetarian" => "Vegetarian"
);
$dish_tags = (array) get_field(\'diet_friendly\');
foreach ($images as $image_name => $alt) {
if (in_array($image_name, $dish_tags)) {
echo \'<img src="\' . get_template_directory_uri() . \'/images/\' .
$image_name . \'.png" alt="\' . $alt . \'" />\';
}
}