Вызов функций для элементов массива

166
02 июня 2019, 20:50

Сценарий следующий: пользователь отмечает "чекбоксами" варианты в соответствующем мета-поле в админ.панели и на выходе (в зависимости от выбранного варианта) выполняется shortcode.

Сам php-код я написал, но он получается громоздким. Хотелось бы уточнить, как правильно его оптимизировать. Вот абстрактный пример для одного варианта:

if ( in_array( 'Чай', get_field('meal_type') ) ) 
                        {   
                            the_content();                                                                
                            do_shortcode("[tea]");                               
                        }

Здесь все работает и выводится информация так, как нужно. Но если таких полей много, то код получается громоздким (если описывать раздельно).

Как сразу объединить при выборке нужные категории мета-полей и выполнять для них соответствующие шорткоды и выводить информацию после функции the_content()?

Например:

the_content();
array(){
'Чай'  -> do_shortcode['tea'],
'Кофе' -> do_shortcode['coffee'],
...
}
Answer 1

Я бы сделал примерно так:

$meals = array( 'Чай', 'Кофе', 'Вино', 'Пиво' );
$meal = get_field( 'meal_type' );
if ( in_array( $meal, $meals, true ) ) {
    the_content();
    echo do_shortcode( "[$meal]" );
}
READ ALSO
как объявить переменную и присвоить ей значение

как объявить переменную и присвоить ей значение

Есть форма c несколькими строками

206
Как создать и отправить уведомление по дате и времени?

Как создать и отправить уведомление по дате и времени?

Админка(PHP+MySql) + кроссплатформенное приложение(JavaScript) для android и iphone

139
Как получить из DOM массив элементов ID? (Парсер сайта)

Как получить из DOM массив элементов ID? (Парсер сайта)

Существует сайт, каталогВ каталоге есть множество элементов

131
функция не видит переменную php

функция не видит переменную php

echo functionname(array("first"=>12,"sec"=>45,"third"=>23,"forth"=>55));

141