У меня есть следующий код:
<?php echo get_custom_field('Services'); ?> 
Для этого есть три возможных строковых выхода: «еда», «напиток», «еда и напитки».
Я хотел бы заменить эти строки маленькими значками (например, стакан для «напитка»).
Есть ли простой способ сделать это с PHP?
благодаря
Вы можете сопоставить значения через массив:
 $items = array( "Food" => "plate.png", "Drink" => "glass.png", "Food & Drink" => "tray.png" ); 
Затем выполните ваш поиск при повторении изображения:
 <img src="<?php echo $items[ get_custom_field('Services') ]; ?>" /> 
Вы можете использовать переключатель:
 <?php switch (get_custom_field('Services')) { case "glass": echo '<img src="glass.jpg" />'; break; case "drink": echo '<img src="food.jpg" />'; break; case "food & drink": echo '<img src="food-drink.jpg" />'; break; default: echo '<img src="noicon.jpg" />'; } ?> 
Не прямой ответ, но я бы добавил класс к элементу (содержащий …) и использовал css для удаления текста и отображения фонового изображения:
PHP:
 <?php echo '<span class="' . $SERVICES_ID_OR_SOMETHING . '">' . get_custom_field('Services') . '</span>'; ?> 
CSS:
 .SERVICES_ID_OR_SOMETHING { background: url(/path/to/image) no-repeat left center; text-indent: -9999em; }