do_shortcode()
Знаходить у переданому тексті зареєстровані шорткоди та обробляє їх.
Функція обробить тільки шорткод, про які WP знає (які зареєстровані як шорткод). Шорткоди реєструються за допомогою функції add_shortcode() . Тобто. конструкції виду [some_name] не будуть видалені або оброблені, якщо WordPress не доданий шорткод some_name .
Якщо тег шорткоду невідомий, то контент повернеться як є (шорткод у ньому не буде оброблений). Таке може вийти, наприклад, коли Плагін відключено, але його шорткод використовується в контенті.
Читайте обов’язково: Шорткоди в WordPress .
З WP 5.4 у цієї функції виник аліас (точна копія): apply_shortcodes() .
(швидко) | 50000 разів – 0.71 сек
(дуже швидко) |
PHP 7.0.32, WP 5.0.3
Хуків немає.
Повертає
Строку
. Текст, у якому шоткоди оброблені (змінено виведення прикріплених до них функцій).
Використання
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 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'); }
#5 Обробка лише вказаного шорткоду в контенті
Допустимо ми хочемо додати підтримку шорткодів у коментарях, але нам не потрібно, щоб там можна було використовувати всі можливі шорткоди. Нам потрібно, щоб там працював тільки наш шорткод, назвемо його [myshort]
.
Реалізувати таке завдання можна залишивши зареєстрованим лише потрібний нам шорткод перед викликом функції $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; }
нотатки
- Global. Масив. $shortcode_tags List of shortcode tags і їх callback hooks.
список змін
З версії 2.5.0 | Введено. |