WordPress php do shortcode wordpress

do_shortcode()

Функция ищет шорткоды в переданном в неё тексте и выполняет их все.

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

У меня на сайте также есть подробный урок про Шорткоды WordPress.

do_shortcode( $content, $ignore_html = false )

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

Возвращает текст с обработанными шорткодами.

Пример

Возьмём легкий пример – при помощи шорткода WooCommerce [sale_products] выведем внутри PHP-кода товары с распродажей:

echo do_shortcode( '[sale_products]' );

Миша

Впервые познакомился с WordPress в 2009 году. Организатор и спикер на конференциях WordCamp. Преподаватель в школе Нетология.

Пишите, если нужна помощь с сайтом или разработка с нуля.

Комментарии — 2

Добрый день. Я новичок делаю магазин для друга woocommerce. Благодарю Вас за ваш блог. Многое использую. А этот пост помог мне вывести недавно просмотренные товары на каждой странице товара. Спасибо.

Чтобы оставить комментарий, пожалуйста, зарегистрируйтесь или войдите.

Источник

Как правильно вставить шорткод [shortcode] в PHP-файл или шаблон сайта

Как правильно вставить шорткод

Обнаружила недавно, что многие не знают, как вставлять шорткоды в вордпресс или вывести скрипт на сайте с иным движком. А те кто знают, куда вставлять шорткод в вордпресс, и как в коде шаблона темы сайта сделать PHP вывод шорткода, нередко допускают серьезные ошибки. И в итоге потом они пеняют на то, что либо плагин у них или шорткод не работает, либо вообще что-то с шаблоном сайта не так. Но, на самом деле, все очень просто и ошибки случаются в основном из-за невнимательности или незнания синтаксиса и пунктуации. А чтобы таких ошибок было меньше, я предлагаю пройти курсы Frontend разработки.

Читайте также:  Python substitute in string

Как вставить шорткод в PHP файл? Быстрый ответ

Специально для тех, кто и так все знает, а просто ищет быстрый ответ, как вставить шорткод в шаблон wordpress или на другой движок, то вот, пожалуйста, используйте этот код:

Однако не забывайте про пунктуацию! Кавычки в вашем шорткоде и в php коде должны быть разными.

Т.е., если в вашем шаблоне сайта на wordpress, вы используете такой же шорткод, но с двумя кавычками внутри ( [«…»] ), и в вашем php-коде вы также используете двойные кавычки ( «[…]» ), то нужно одни из них поменять на одинарные. Именно из-за таких мелких причин часто не работают шорткоды в wordpress. Подробнее об этом ниже.

Что такое шорткод (shortcode), и для чего он нужен?

Shortcode – это от англ. «короткий код». Используется он, в основном, при создании плагинов или модулей, предназначенных для работы с системами управления контентом (CMS), например, WordPress, Joomla и др. Проще говоря, этот короткий код является неким ярлыком, который, при добавлении на сайт, подтягивает за собой весь большой код из плагина.

Выглядит шорткод обычно так: вставить шорткод в php или так как вставить шорткод в шаблон wordpress или даже просто в одно слово

В любом случае, это не так важно, так как главное знать принцип добавления шорткода на сайт.

Как это работает?

Все очень просто. Допустим, вы имеете сайт на движке WordPress, у вас стоит какой-нибудь простой шаблон (дизайн) сайта, но чтобы его украсить, вы решили поставить на него слайдер, в котором ваши фотографии будут перелистываться сами. Сделать это очень просто. Для этого нужно скачать плагин слайдера из общей библиотеки плагинов WordPress, залить туда нужные фото, и плагин выдаст вам не огромный код слайдера по типу:

Как вставить shortcode в PHP-файл

а всего лишь вот такой короткий код (Shortcode) в одну строку:

Как правильно вставить shortcode

шорткод на страницу сайта на wordpress или в виджет, ваш плагин начнет работать и будет генерировать верхний большой код слайдера, в результате чего, вы получите ваш слайдер на страницах сайта.

А как вставить шорткод слайдера прямо в шаблон wordpress в php-код?

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

Если нужно добавить слайдер в тему wordpress непосредственно в код, для этого разработчики данного плагина написали рядом (рис. выше) функцию шорткода на языке php:

Читайте также:  Html шаблоны для заглушки

Такую «функцию» шорткода можно вставить в php-файл в нужное вам место на сайте. Например, в header.php, где-нибудь после body или, может быть, в sidebar.php, а лучше всего в файл шаблона страницы (он может называться как-нибудь так content-page.php), в результате, вы получите тот же слайдер, но уже встроенный в дизайн самого сайта.

Однако нужно быть очень внимательными при выводе шорткода в шаблоне wordpress в php-файлах. Для этого нужны хотя бы элементарные знания php. Поскольку, если его «не туда» вставить в php-файле, то на сайте будет выведена ошибка.

Обычно любой php-код начинается на . Вот после окончания одного php-кода и перед началом другого можете вставлять свою php-функцию. К сожалению, разработчики плагинов не всегда делают готовую (как в данном примере) php-функцию для вывода шорткода. В таком случае, можно самим ее создать легко и просто, об этом ниже.

Как вывести шорткод в php в wordpress, если нет готовой php-функции в плагине?

Бывают плагины, в которых их разработчики решили не указывать готовую php-функцию для вставки шорткода в файлы шаблона сайта (как было в прошлом примере), а указывают лишь шорткод. Вот как, например, в этом плагине слайдера:

добавить слайдер в тему wordpress

Что делать в этом случае, ведь нам нужно вставить шорткод в шаблон wordpress и непосредственно в php-файл на сайте? В таком случае необходимо просто самим обернуть шорткод php-функцией вывода, которая была показана в самом начале статьи. В результате, с учетом нашего шорткода, у нас получиться вот такой вид php-функции:

Источник

do_shortcode() │ WP 2.5.0

Search content for shortcodes and applies the registered functions to the found shortcodes. The function will only process known shortcodes (registered shortcodes). Shortcodes are registered using the add_shortcode() function. I.e. the text like [some_name] will not be removed or treated, if the shortcode some_name is not registered. If the shortcode tag is unknown, the content will be returned as is (the shortcode will not be processed). This can happen when the Plugin is disabled, but its shortcode is used in the content.

Return

String . Content with shortcodes filtered out.

Usage

do_shortcode( $content, $ignore_html );

$content(string) (required) Content to search for shortcodes. $ignore_html(true|false) When true, shortcodes inside HTML elements will be skipped.
Default: false

Examples

#1 Process all shortcodes in the text

Code from the WordPress shortcodes.php file. Attaches this function to the_content filter, which is triggered when the post content is displayed:

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

#2 Processing of a separate shortcode

Example of using a shortcode in a PHP file, outside of content, when you need to get the output of the shortcode separately.

Читайте также:  Upload png file in php

This example shows how to process a separate shortcode in PHP code. For example, if you want to output a shortcode in a template file.

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

#3 Content shortcode

Adding custom text to the shortcode in a PHP file, outside of the content:

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

#4 Enable shortcodes in widget «Text»

#5 Processing only the specified shortcode in the content

Suppose we want to add support for shortcodes in comments, but we don’t want to be able to use all possible shortcodes there. We need only our shortcode to work there, let’s call it [myshortcode] .

You can implement such a task by leaving only the shortcode you need registered before calling apply_shortcode(). All registered shortcodes are stored in the global variable $shortcode_tags.

// Process the [myshortcode] in the comment content. // 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; >

Notes

Changelog

do_shortcode() do shortcode code 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 

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