Функция 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, делая ваш контент более динамичным и интерактивным.