WordPress как на ладони
wordpress jino

do_shortcode() WP 2.5 do shortcode

Просматривает текст на наличие в нем шорткодов и применяет зарегистрированные функции к найденным шорткодам.

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

Шорткод (шоткод) - это конструкция в тексте, которая будет обработана и заменена на какой-либо HTML код. Шорткод может вызываться по-разному. Пример вызова шорткода [somename]:

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

Она обрабатывается функции отвечающей за данный шоткод. Шоткоды и функции из обрабатывающие регистрируются отдельно через add_shortcode().

Хуков нет.

Возвращает

Строку. Текст, в котором шоткоды обработаны (изменены на вывод прикрепленных к ним функций).

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

do_shortcode( $content );
$content(строка) (обязательный)
Текст в котором нужно преобразовать шорткоды.
По умолчанию: нет

Примеры

#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 id="91" title="quote"]');

#3. Открывающий и закрывающий шорткод

Использование шоткода в PHP файле, за пределами контента. Для открывающих и закрывающих шорткодов:

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

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

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

Код из wp-includes/shortcodes.php WP 4.7.3

<?php
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 <!--[if IE ]>
	$content = unescape_invalid_shortcodes( $content );

	return $content;
}

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

Из раздела: Шоткоды

Https://www.playcasinovulcan.com/skachat_igrovie_avtomaty/

Здесь https://www.playcasinovulcan.com/skachat_igrovie_avtomaty/ клуб вулкан играть на деньги

Реклама
do_shortcode 4 комментария
  • Артём

    Здравствуйте. Подскажите пожалуйста, как сделать обработку только определённых шорткодов в тексте комментария.

    Ответить2 года назад #
  • Юрец cайт: виртуальная-жд.рф

    Просто. Спасибо)

    1
  • Andrew

    Подскажите пожалуйста, каким фильтром можно инициировать выполнение всех шорткодов в тексте и запись результата в переменную?

Здравствуйте, !

Ваш комментарий