Получение значения настраиваемого поля для functions.php и отображение в шорткоде

Может быть, кто-то сможет помочь мне с моей проблемой, потому что я застрял без идей.

У меня на сайте есть шорткод, который отвечает за отображение фотосетов прямо из Flickr (через внешний плагин).

Код, сгенерированный плагином, выглядит следующим образом: [justify_image_grid preset=c1 flickr_user=USERID flickr_photoset=PHOTOSETID]

В моих сообщениях блога отображаются различные фотосеты от Flickr. Я бы хотел избежать необходимости каждый раз редактировать шорткод, чтобы обновлять шорткод с правильным идентификатором фотосета, поэтому я решил использовать настраиваемое поле (Key = FlicktPhotoset, Value = Photoset ID) и добавить функцию к functions.php, которая бы создать мой шорткод, который будет включать в себя оригинальный шорткод со значением из настраиваемого поля.

Код в functions.php выглядит следующим образом:

function flickr_shortcode() {
    echo do_shortcode('[justified_image_grid preset=c1 flickr_user=USERNAME flickr_photoset=PHOTOID]');
}
function flickr_shortcodes_init() {
    add_shortcode('flickr', 'flickr_shortcode');
}
add_action('init', 'flickr_shortcodes_init');

Я застрял в том, как передать значение шорткода в этот код, чтобы автоматически извлечь PHOTOID из значения настраиваемого поля.

1 ответ

Решение

Что-то вроде этого:

function flickr_shortcode() {
    $FlicktPhotoset = get_post_custom_values("FlicktPhotoset");       
    echo do_shortcode('[justified_image_grid preset=c1 flickr_user=USERNAME flickr_photoset='.$FlicktPhotoset[0].']');
}
function flickr_shortcodes_init() {
    add_shortcode('flickr', 'flickr_shortcode');
}
add_action('init', 'flickr_shortcodes_init');
Другие вопросы по тегам