WordPress shortcode php content

Include PHP file in Content using [shortcode]

Here is what I have I am not having any lucking finding how to simply include a file in the content editor using a shortcode. For Example if I wanted to include form.php inside my Contact Page how would I make this happen using a shortcode? Below is was attempting to work with to no avail. Any help would be appreciated!

// Shortcode implementation function magic_stuff($atts) < // turn on output buffering to capture script output ob_start(); // include file (contents will get saved in output buffer) include(TEMPLATEPATH.'/wp-content/themes/grainandmortar/inc_static/test.php'); // save and return the content that has been output $content = ob_get_clean(); return $content; >//register the Shortcode handler add_shortcode('magic', 'magic_stuff'); 

5 Answers 5

I modified some code from an old blog post to do this, and allow for query-strings to be attached to the file as well.

Original credit goes to amberpanther.com, and it turns out they made a plug-in out of this, too.

//create the shortcode [include] that accepts a filepath and query string //this function was modified from a post on www.amberpanther.com you can find it at the link below: //http://www.amberpanther.com/knowledge-base/using-the-wordpress-shortcode-api-to-include-an-external-file-in-the-post-content/ //BEGIN amberpanther.com code function include_file($atts) < //if filepath was specified extract( shortcode_atts( array( 'filepath' =>'NULL' ), $atts ) ); //BEGIN modified portion of code to accept query strings //check for query string of variables after file path if(strpos($filepath,"?")) < $query_string_pos = strpos($filepath,"?"); //create global variable for query string so we can access it in our included files if we need it //also parse it out from the clean file name which we will store in a new variable for including global $query_string; $query_string = substr($filepath,$query_string_pos + 1); $clean_file_path = substr($filepath,0,$query_string_pos); //if there isn't a query string >else < $clean_file_path = $filepath; >//END modified portion of code //check if the filepath was specified and if the file exists if ($filepath != 'NULL' && file_exists(get_stylesheet_directory_uri() . "/" . $clean_file_path)) < //turn on output buffering to capture script output ob_start(); //include the specified file include(TEMPLATEPATH.$clean_file_path); //assign the file output to $content variable and clean buffer $content = ob_get_clean(); //return the $content //return is important for the output to appear at the correct position //in the content return $content; >> //register the Shortcode handler add_shortcode('include', 'include_file'); //END amberpanther.com code //shortcode with sample query string: //[include filepath="/get-posts.php?format=grid&taxonomy=testing&term=stuff&posttype=work"] 

I set mine to pull from the stylesheet uri (so it will work with child themes and such), but you could adjust that code easily to pull from anywhere (including plug-in directories), or remove it altogether and just use the full path when including the file. You could even add a conditional with a trigger character at the beginning that tells it to use a specific path based on what the first character of the file name is, like using a «#» for the template directory, etc.

Читайте также:  Python file open read only

I use it to pull in a file called get-posts.php that lives in my template directory and formats the output of various posts based on a series of parameters provided in the query string. It saves me from needing special templates because I can include the file, send it a format and it will output the posts with the markup I’ve specified in the get-posts.php file.

It also allows clients to pull custom post types into actual blog-posts in specific formats and is quite handy.

Let me know if you need clarification on anything.

Источник

Шорткоды в WordPress: создание и применение на практике

Шорткоды в WordPress — это простой способ добавить динамический контент к записям, страницам, боковым панелям и шаблонам. Многие плагины используют их для вывода контактных форм, галереи изображений, слайдеров.

В этой статье мы расскажем, как легко добавить шорткод в WordPress, а также создавать кастомные шорткоды с помощью Shortcode API.

Что такое шорткод в WordPress

Шорткоды — это ярлык кода, который позволяет добавлять динамический контент к различным типам записей, боковым панелям и шаблонам.

Синтаксис шорткода представляет собой текст (ключевое число) внутри квадратных скобок.

Простой шорткод без параметров выглядит так:

Шорткод с параметрами имеет вид:

Шорткод с текстом в качестве параметра обычно выглядит, так:

[shortcode]Здесь может быть любой текст[/shortcode]

Косая черта может применяться, как в одиночных, так и в контентных шорткодах:

[shortcode /] [shortcode]Еще один пример[/shortcode]

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

Shortcode API

Система WordPress в целях безопасности при сохранении контента выполняет фильтрацию данных, чтобы не допустить внесения выполняемого вредоносного кода в базу данных.

Это означает, что вы можете писать HTML-разметку в своих постах, но не можете выполнить PHP-код и сценарии JavaScript.

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

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

Область применения шорткодов на сайте достаточно широка. Вы можете использовать их при написании плагинов, для размещения счетчиков посещаемости, добавления интерактивной карты, показа рекламных объявлений и других задач.

Как добавить шорткод на страницу в WordPress

Если вы используете редактор Gutenberg, добавьте новый блок с типом Шорткод в процессе редактирования записи:

Добавление шорткода в редакторе блоков Gutenberg

Если вы используете классический редактор начните редактирование записи в которой вы хотите добавить динамический контент. Вы можете вставить шорткод в любом месте текстового редактора:

Добавление шорткода в классическом редакторе WordPress

Для добавления шорткода на боковую панель, перейдите на экран Внешний вид -> Виджеты и добавьте новый виджет типа Блок:

Добавление шорткода в сайдбар с помощью виджета

Для вставки шорткода в шаблон WordPress используйте функцию do_shortcode() :

Создание шорткодов в WordPress

В качестве примера напишем простой кастомный шорткод с помощью функции add_shortcode() , который вернет некоторый результат.

Добавим код в functions.php :

Вставим шорткод [shortcode] в текст записи и увидим результат выполнения функции:

Шорткод с поддержкой параметров

Пример шорткода с поддержкой параметров:

 'Марка автомобиля', 'hp' => 0, ], $atts ); return "Мощность автомобиля — лошадиных сил"; > ?>

Размещаем шорткод с двумя параметрами [car brand=»Porsche» hp=»220″] в тексте записи и получаем результат:

Мощность автомобиля Porsche — 220 лошадиных сил.

Контентный шорткод

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

Для удобства редактирования записей можно сформировать шорткод, который будет содержать в себе обертку HTML, которую так не любят контент-менеджеры:

Чтобы использовать этот шорткод, добавьте его в текст записи:

[blockquote]Еще одна цитата[/blockquote]

Контентный шорткод с поддержкой атрибутов

Вывод цитат можно преобразовать в блоки внимания, добавив поддержку атрибутов. Например, вы часто используете блоки внимания в своих записях для вывода: примечаний, цитат и предупреждений.

 'example', ], $atts ); return '
' . $text . '
'; > ?>

Теперь мы сможем задать класс для тега и добавить текст:

[blockquote ]Внимание! Продукция для лиц старше 16 лет.[/blockquote]

Шорткод с буферизацией вывода

Чтобы вставить в текст записи фрагменты HTML, PHP-код или JS-сценарий, воспользуемся буферизацией вывода в PHP.

Например, добавим рекламный блок Рекламной сети Яндекса в контент на странице с помощью шорткода. Вывод рекламного блока без буферизации:

 '; return $string; > ?>

Пример кода c буферизацией вывода:

В результате шорткод [sponsored] покажет рекламное объявление на странице.

Удаление шорткодов в WordPress

Чтобы удалить шорткод воспользуйтесь функцией remove_shortcode() . Функция принимает лишь один параметр: имя шорткода, который требуется снять с регистрации.

Источник

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

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

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

Как вставить шорткод в 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:

Такую «функцию» шорткода можно вставить в 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-функции:

Источник

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