Функция do_shortcode() в WordPress: примеры использования, входные параметры, возвращаемое значение

Функция DO_SHORTCODE() в WordPress

Функция do_shortcode() (начиная с версии 2.5.0) предназначена для поиска коротких кодов в тексте и применения зарегистрированных к ним функций.

Что такое короткие коды?

Короткие коды — это специальный синтаксис, который позволяет вставлять определённый функционал или контент (например, галереи, формы и т.д.) в текстовые записи. Если вы видите текст в формате [some_name], это означает, что это короткий код. Однако, чтобы короткий код работал, он должен быть зарегистрирован.

Если короткий код не зарегистрирован, он останется в тексте без изменений. Это может случиться, если плагин, который регистрировал этот код, отключён.

Как работает do_shortcode()

Функция do_shortcode() обрабатывает только известные (зарегистрированные) короткие коды. Если она встретит неизвестный код, просто вернёт текст без изменений.

Пример использования коротких кодов

Код коротких кодов может выглядеть так:

  • [somename]
  • [somename id="123" size="medium"]
  • [somename]текст[/somename]

Входные параметры функции

  • $content (string, обязательный) — текст, в котором необходимо найти короткие коды.
  • $ignore_html (boolean, не обязательный) — если true, короткие коды внутри HTML-элементов будут пропущены. По умолчанию: false.

Возвращаемое значение

Функция возвращает строку — контент с вынутыми короткими кодами.

Примеры использования

Пример 1: Обработка всех коротких кодов в посте

Чтобы обработать все короткие коды в контенте записи, добавьтеFiltr в файл функций вашей темы:

add_filter('the_content', 'do_shortcode', 11);

Пример 2: Обработка отдельного короткого кода

Если вам нужно получить результат короткого кода отдельно в PHP-коде:

echo do_shortcode('[somename]');

или

echo do_shortcode('

Error: Contact form not found.

');

Пример 3: Добавление текста к короткому коду

Чтобы добавить пользовательский текст к короткому коду:

echo do_shortcode('[iscorrect]' . $text_to_be_wrapped_in_shortcode . '[/iscorrect]');

Пример 4: Включение коротких кодов в виджет "Текст"

Если вы хотите включить короткие коды в текстовом виджете, добавьте следующий код:

if (!is_admin()) {
    add_filter('widget_text', 'do_shortcode');
}

Пример 5: Обработка только определённого короткого кода в комментариях

Если необходимо поддерживать короткие коды только в комментариях, вы можете сделать это так:

// Обработать [myshortcode] в содержимом комментариев.
add_filter('comment_text', 'do_shortcodes_in_comment_content', 11, 2);

function do_shortcodes_in_comment_content($content, $comm) {
    if ('comment' === $comm->comment_type) {
        $save = $shortcodes = &$GLOBALS['shortcode_tags'];
        $shortcodes = ['myshort' => $shortcodes['myshort']];
        $content = apply_shortcodes($content);
        $shortcodes = $save; // вернуть обратно
    }

    return $content;
}

Замечания

  • $shortcode_tags — глобальная переменная, содержащая список зарегистрированных коротких кодов и их обработчики.

Изменения

Функция do_shortcode() была введена в версии 2.5.0.

Связанные функции

  • add_shortcode()
  • apply_shortcodes()
  • gallery_shortcode()
  • get_shortcode_regex()
  • has_shortcode()
  • remove_all_shortcodes()
  • remove_shortcode()
  • shortcode_atts()
  • shortcode_exists()
  • shortcode_parse_atts()
  • strip_shortcodes()
  • wp_audio_shortcode()
  • wp_playlist_shortcode()
  • wp_video_shortcode()

Эта информация поможет вам лучше понять и использовать короткие коды в WordPress, делая ваш контент более динамичным и интерактивным.

Leave a Reply

Ваш адрес email не будет опубликован. Обязательные поля помечены *