Вывести шорткод wordpress php

do_shortcode() │ WP 2.5.0

Находит в переданном тексте зарегистрированные шорткоды и обрабатывает их. Функция обработает только шорткоды, о которых WP знает (которые зарегистрированы как шорткоды). Шорткоды регистрируются с помощью функции add_shortcode(). Т.е. конструкции вида [some_name] не будут удалены или обработаны, если в WordPress не добавлен шорткод some_name . Если тег шорткода неизвестен, то контент вернется как есть (шорткод в нем не будет обработан). Такое может получиться, например, когда Плагин отключен, но его шорткод используется в контенте.

Возвращает

Использование

do_shortcode( $content, $ignore_html );

$content(строка) (обязательный) Текст в котором нужно преобразовать шорткоды. $ignore_html(строка) Игнорировать ли шорткоды внутри HTML. Если поставить true, то шорткоды внутри HTML обработаны не будут.
По умолчанию: false

Видео с примерами

Примеры

#1 Обработает все шорткоды в тексте

Из файла shortcodes.php . Прикрепляет функцию do_shortcode() к фильтру the_content , который срабатывает при выводе контента поста:

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

#2 Обработка отдельного шорткода

Использование шоткода в PHP файле, за пределами контента, когда нужно получить вывод шоткода отдельно. Этот пример показывает как обработать шорткод из кода PHP. Например, если нужно вывести шорткод в где-то произвольном месте шаблона.

echo do_shortcode( '[somename]' );
echo do_shortcode( '[contact-form-7 title="quote"]' );

#3 Контентный шорткод

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

#4 Включение шорткодов в виджете «Текст»

#5 Обработка только указанного шорткода в контенте

Допустим мы хотим добавить поддержку шорткодов в комментариях, но нам не нужно чтобы там можно было использовать все возможные шорткоды. Нам нужно чтобы там работал только наш шорткод, назовем его [myshort] . Реализовать такую задачу можно оставив зарегистрированным только нужный нам шорткод перед вызовом функции apply_shortcodes(). Все зарегистрированные шорткоды хранятся в глобальной переменной $shortcode_tags.

// Обрабатываем шорткод [myshort] в контенте комментария. // after wpautop 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 back > return $content; >

Заметки

Список изменений

Код do_shortcode() do shortcode WP 6.2.2

function do_shortcode( $content, $ignore_html = false ) < global $shortcode_tags; if ( false === strpos( $content, '[' ) ) < return $content; >if ( empty( $shortcode_tags ) || ! is_array( $shortcode_tags ) ) < return $content; >// Find all registered tag names in $content. preg_match_all( '@\[([^<>&/\[\]\x00-\x20=]++)@', $content, $matches ); $tagnames = array_intersect( array_keys( $shortcode_tags ), $matches[1] ); if ( empty( $tagnames ) ) < return $content; >$content = do_shortcodes_in_html_tags( $content, $ignore_html, $tagnames ); $pattern = get_shortcode_regex( $tagnames ); $content = preg_replace_callback( "/$pattern/", 'do_shortcode_tag', $content ); // Always restore square braces so we don't break things like 

Оцените статью