Шорткод wordpress
Опубликовано: 23.08.2018
Здравствуйте уважаемые начинающие программисты.
Что такое шорткод (shortcode)?
Научно выражаясь — это простейшая функция для микрокодов, которую можно использовать как в редакторе WordPress, так и в виджетах, и в файлах шаблона.
А по простому — это маленький php код, в который можно «засунуть» любой html элемент, вставить всё это в файл functions.php, а затем с помощью совсем маленькой метки, выводить этот элемент в любой части контента.
Как добавить новые функции в functions.php WordPress - ShortCode API
Мало того. Этому html элементу, можно задать class, и в файле style.css сделать любое внешнее оформление.
Представляете перспективы?
Можно каждую статью какой либо рубрики, начинать логотипчиком этой рубрики, и не грузить для этого текст лишней картинкой.
Достаточно будет один раз вставить её в функцию шорткода, а затем в начале каждой статьи рубрики, ставить соответствующую метку, и WordPres динамически подгрузит туда эту картинку.
Можно для каждой рубрики написать отдельное меню, вставить его в код, а затем поставить метки только в статьях нужной рубрики.
Вот эти метки и имеют название «шорткод».
Теперь давайте смотреть, как это чудо выглядит, и как работает.
function main_cod () { return 'Привет'; } add_shortcode ('shortcod', 'main_cod');Вот и весь основной код. Разберём по косточкам.
В первой строке — пользовательская функция. Пользовательская — это значит, что название ей Вы придумываете самостоятельно.
Подробнее про то как даются названия, и вообще про функции php можно почитать в статье Функции php .
Во второй строке, в одиночных кавычках, вставляется то, что Вы хотите выводить на страницах сайта.
У меня там просто слово Привет, но вместо него, как я уже говорил, можно вставить любой html элемент. Ну например бегущую строку:
function main_cod () { return '< marquee >бежим бежим< /marquee >'; } add_shortcode ('shortcod', 'main_cod');В третьей строке, в скобках, в первых одиночных кавычках, указывается имя шорткода, который Вы будете вставлять в контент, а во вторых — имя функции, которая будет этот шорткод выводить.
Сам же он выглядит так:
[shortcod]Имя у него может быть любым, не обязательно именно shortcod. Желательно, чтоб это имя отображало то, что данный шорткод выводит.
Ведь когда таких кодов будет несколько, можно и запутаться, который для чего. Да и название функции лучше давать такое, чтоб было понятно, что она выводит.
В функцию можно прописать и сразу несколько html элементов. Например меню одним тегом не сделаешь.
function main_cod () { return ' < ul class =" meny "> < li class =" html ">< a href =" http://address post ">Курс HTML< /a > < ul > < li >< a href =" http://address post ">Урок 1< /a >< /li > < li >< a href =" http://address post ">Урок 2< /a >< /li > < li >< a href =" http://address post ">Урок 3< /a >< /li > < li >< a href =" http://address post ">Урок 4< /a >< /li > < /ul > < /li > < /ul >'; } add_shortcode ('shortcod', 'main_cod');Оформить это меню можно в файле style.css, так как тегам ul и li заданы классы. Но можно прописать стили прямо в теле функции, добавив туда тег style.
function main_cod () { return ' < style > .meny { background : #fdeaa8 ; padding : 2px ; border-radius : 5px ; box-shadow : 0px 0px 0px 2px #0ea8f4 ; width : 785px ; height : 35px ; } .html { float : left ; margin : 3px 3px 3px 3px ; width : 190px ; } < /style > < ul class =" meny "> < li class =" html ">< a href =" http://address post ">Курс HTML< /a > < ul > < li >< a href =" http://address post ">Урок 1< /a >< /li > < li >< a href =" http://address post ">Урок 2< /a >< /li > < li >< a href =" http://address post ">Урок 3< /a >< /li > < li >< a href =" http://address post ">Урок 4< /a >< /li > < /ul > < /li > < /ul >'; } add_shortcode ('shortcod', 'main_cod');Код меню я представил не полностью, чтоб не занимать место в статье, только для примера, чтоб понять как работает шорткод, что и является целью этой статьи.
Конечно же в стили нужно обязательно добавить позиционирование, так как шорткод будет вставлен в текст в редакторе, а меню должно быть где-то сбоку от текста.
Это были примеры того, как можно применять шорткод с пользовательскими функциями.
Теперь несколько примеров со встроенными php функциями. Напомню, что встроенная — это функция уже имеющаяся в языке php, и решающая определённую задачу.
Скрываем часть контента от незарегистрированных пользователей
В файл functions.php, в самый конец вставляется следующий код:
function member_check_shortcode () { if ( is_user_logged_in() && !is_null( $content ) && !is_feed() ) return $content; return ''; } add_shortcode ('member', 'member_check_shortcode');Закрываемый текст оборачивается в конструкцию
[member]Закрываемый фрагмент контента[/member]Функция member_check_shortcode проверяет регистрацию посетителя Вашего сайта, и в зависимости от этого скрывает или нет выделенный фрагмент контента.
Что и для чего нужно скрывать, я думаю всем понятно. Типичное увеличение подписной базы. А вот для чего нужно следующее действие?
Показываем часть контента только незарегистрированным пользователям
function guest_check_shortcode ( $atts, $content = null ) { if ( !is_user_logged_in() && !is_null( $content ) && !is_feed() ) return $content; return ''; } add_shortcode ('guest', 'guest_check_shortcode');Соответственно шорткод будет выглядеть так:
[guest]Показываемая часть контента[/guest]Подумали для чего это нужно? Правильно, чтоб не мозолить глаза зарегистрированных пользователей формой подписки.
Желаю творческих успехов.
Что такое PHP < < < В раздел > > > Как закрыть сайт на обслуживание без плагина