Не совсем понятно, что, где и как, поэтому и ответ будет далек от конкретной сущности.
Предлагаю такие варианты:
1. Получаете значение кастомного поля, если таковое есть и оно совпадает с нужным значением, то внутри условия используйте http://codex.wordpress.org/Function_Reference/do_shortcode
2. Так как (чаще всего) значение кастомного поля это строка, то можно пойти на хитрость и вызывать так $custom_field_value()
. Подробнее где-то в доках PHP..
UPD http://php.net/manual/ru/functions.variable-functions.php
Что, где и как:
есть плагин, через который я создаю в админке кастомное поле и там же ставлю галочку, что выводить это поле надо на странице определенного кастомного типа. Далее в это поле там же в админке я вставляю шорткод, и на странице где содержимое этого поля должно выводиться — выводится именно результат логики шорткода.
Как-то так
Не знаю, что сказать, покажу примером 🙂
Мои шаги:
1. Установка WP*
2. Простейший шорткод (functions.php темы)
function simple_shortcode() {
return date('Y');
}
add_shortcode( 'year', 'simple_shortcode' );
3. В статье пишу так (скрин):
http://trueimages.ru/img/38/dc/db3d3c35.png
4.
Где мне надо, вызываю (шаблон одиночной записи):
echo do_shortcode((get_post_meta(get_the_ID(), 'hook', true))?get_post_meta(get_the_ID(), 'hook', true):'');
5. На выходе**:
http://trueimages.ru/img/d3/ca/a64d3c35.png
Как-то так..
—-
*Да-да, нет у меня своего WP 🙂
**Это примитивный пример. Не должен, без специальной доработки, использоваться на продакшн сайте..
Лан, уговорили.. Покажу пример для второго варианта 🙂
1. Повторяем.
2. Простейшая ф-ция (functions.php темы)
//запомним название функции
function hook_year() {
return date('Y');
}
3. В статье так:
//вспоминаем название функции и вносим в поле "значение"
http://trueimages.ru/img/5e/9b/f8ed3c35.png
4. Вызов (где-нибудь в петле, например)
echo ($callback = get_post_meta(get_the_ID(), 'callback', true))?$callback():'';
5. На выходе:
http://trueimages.ru/img/e5/be/01fd3c35.png
I love PHP 🙂
—
Сноски те же 🙂
exec php shortcode Офигенный плагин! Пользуюсь, работает на ура! Рекомендую!