WordPress вставить шорткод в php
Так а в чем проблема? Что конкретно не получается? Куда конкретно вы хотите вставить шорткод? Что это за шорткод?
26 янв в 7:28
В нижнюю строку
26 янв в 8:13
Дополните вопрос, покажите, как вы вставляли шорткод. Мне просто непонятно, какие с этим сложности могут возникнуть
26 янв в 8:16
Как то так пытаюсь впихнуть)) ‘; ?>?php>
26 янв в 8:23
1 ответ 1
Сортировка: Сброс на вариант по умолчанию
Все шорткоды, которые выполняет WP, выполняются через do_shortcode() , поэтому шорткод нужно вызывать через эту функцию: do_shortcode(‘[POST_MODIFIED]’)
Вдобавок ко всему, строки сами себя не соединят, конкатенация в php делается через оператор . .
А дальше только все это соединить:
' . get_the_author() . ''; ?> ' . wpshop_read_time() . ' ' . __( 'min', THEME_TEXTDOMAIN ) . ''; ?> get_views() > 0 ) < echo '' . $wpshop_helper->rounded_number( $wpshop_template->get_views() ) . ''; > ?> '; ?> '; ?> ?>
WordPress. Как выполнить шорткод внутри php кода.
Если вставлять шорткод (shortcode) внутри заметки wordpress, то особых проблем, как правило, не возникает.
Пользуемся такой формой записи:
[shortcode]
И все работает отлично.
Проблема возникает при попытке вставить подобный шорткод внутрь какого-нибудь файла темы с расширением php (например, header.php, sidebar.php и др.).
В этой ситуации подобные шорткоды уже не работают.
Но, возможность выполнить шорткод wordpress внутри php файлов все-таки есть. Для этого можно воспользоваться следующей конструкцией:
Функция do_shortcode позволяет выполнять шорткоды внутри php.
Очень удобно и позволяет добавить дополнительный функционал в ваши темы на движке WordPress.
Больше моих уроков по Worpdress здесь.
Чтобы оставить сообщение, зарегистрируйтесь/войдите на сайт через:
Как вставить шорткод (shortcode) в шаблон WordPress
Admin
07.10.2017
WordPress
Многие плагины для WordPress позволяют выводить свои функции в записях или отдельных элемента сайта (через виджеты). Поэтому обычно шорткоды используются для вставки через административную панель сайта. Но можно их (shortcode) вставить и в шаблон WordPress.
Предположим, что есть какой-то плагин и он позволяет выводить требуемую информацию через следующий шорткод:
[plugin_shortcode_name]
Теперь, чтобы использовать этот shortcode в шаблоне своего сайта, добавляем следующий код в любую из страниц шаблона. В том месте, где требуется вывести шорткод:
Читайте также
У сайта нет цели самоокупаться, поэтому на сайте нет рекламы. Но если вам пригодилась информация, можете лайкнуть страницу, оставить комментарий или отправить мне подарок на чашечку кофе.
do_shortcode() │ WP 2.5.0
Находит в переданном тексте зарегистрированные шорткоды и обрабатывает их. Функция обработает только шорткоды, о которых WP знает (которые зарегистрированы как шорткоды). Шорткоды регистрируются с помощью функции add_shortcode(). Т.е. конструкции вида [some_name] не будут удалены или обработаны, если в WordPress не добавлен шорткод some_name . Если тег шорткода неизвестен, то контент вернется как есть (шорткод в нем не будет обработан). Такое может получиться, например, когда Плагин отключен, но его шорткод используется в контенте.
Читайте обязательно: Шорткоды в WordPress.
С WP 5.4 у это функции появился алиас (точная копия): apply_shortcodes().
Работает на основе: do_shortcode_tag() , get_shortcode_regex() , do_shortcodes_in_html_tags()
1 раз — 0.000387 сек (быстро) | 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 title="quote"]' );
#3 Контентный шорткод
Использование шоткода в PHP файле, за пределами контента. Для открывающих и закрывающих шорткодов:
echo do_shortcode( '[iscorrect]'. $text_to_be_wrapped_in_shortcode .'[/iscorrect]' );
#4 Включение шорткодов в виджете «Текст»
if( ! is_admin() )
#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; >
Добавить свой пример
Заметки
- Global. Массив. $shortcode_tags List of shortcode tags and their callback hooks.
Список изменений
| С версии 2.5.0 | Введена. |
Код do_shortcode() do shortcode WP 6.4.1
function do_shortcode( $content, $ignore_html = false ) < global $shortcode_tags; if ( ! str_contains( $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; >// Ensure this context is only added once if shortcodes are nested. $has_filter = has_filter( 'wp_get_attachment_image_context', '_filter_do_shortcode_context' ); $filter_added = false; if ( ! $has_filter ) < $filter_added = add_filter( 'wp_get_attachment_image_context', '_filter_do_shortcode_context' ); >$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Предыдущая запись
