• Как сделать чтобы шорткод, вставленный в кастомное поле отрабатывал и отображал результат той логики, которая в него заложена? По факту выводится просто его код.
    Google говорит, что шорткоды в кастомных полях по умолчанию не отрабатываюся.
    Как это исправить?

Просмотр 6 ответов — с 1 по 6 (всего 6)
  • Не совсем понятно, что, где и как, поэтому и ответ будет далек от конкретной сущности.
    Предлагаю такие варианты:
    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 Офигенный плагин! Пользуюсь, работает на ура! Рекомендую!

Просмотр 6 ответов — с 1 по 6 (всего 6)
  • Тема «Как отрабатывать шорткод через кастомное поле?» закрыта для новых ответов.