Как вывести шорткод в файлы шаблона wordpress
Всем привет, друзья, давненько у меня на блоге не было практических постов, да и вообще каких-либо постов =) Я никуда не пропал, просто работаю, и именно по работе мне пришлось столкнуться с такой задачей — как вывести шорткод не в сам блок с контентом, а непосредственно в тело шаблона.
Ведь если вы по аналогии просто скопируете [shortcode] как это делаете в записях, и вставите его в код, например в header.php, то ничего не выйдет, шоткод не заработает.
Для тех кто вообще не понимает о чем речь и что такое шорткод (shortcode от англ. короткий код) — это вызов фрагмента кода, записи или функции небольшим тегом, помещенным в квадратные скобки [имя_шорткода]. Делается это для удобства — что бы не вставлять каждый раз огромные куски кода, можно просто воткнуть маленький шоткодик) Или если вы используете очень часто один и тот же код, как например я вставляю блоки с рекламой в статьи — все это делается через шорткоды в 2 клика.
Думаю данная заметка будет наиболее полезна тем, кто частенько ковыряется с премиум шаблонами wordpress — именно в них заложена масса интересных возможностей и сложного функционала в шоткодах.
Мне, например, понадобилось вывести настраиваемый поиск, который вставлялся на страницах категорий, при этом кода данного поиска я не имел, только зашитый в шаблон шорткод, так что пришлось выкручиваться. Перелопатив в интернете множество записей, нашел несколько способов как заставить шорткоды работать в файлах шаблона, но рабочим оказался лишь один из них, им и поделюсь ниже:
<?php echo do_shortcode('[ваш_шорткод][/ваш_шорткод]'); ?>
Вставляете данный код в php файл шаблона и все заработает, разумеется не забываем поменять имя шорткода. Таким образом у меня получилось вывести сложный по функционалу поиск на всех страницах категорий. Если в вашем шоткоде будут дополнительные параметры, то не забывайте и их указывать.
Знаете ли вы, что в движок WordPress заложены несколько базовых шорткодов, которыми вы можете пользоваться, например вывод галереи шорткодом [gallery]. Подробнее можно почитать на оф. сайте вордпресса http://codex.wordpress.org/Shortcode.
Как самому создавать шорткоды и выводить их в записях
Меня неоднократно спрашивали, как я вставляю блоки с рекламой на сайте, каким плагином. Так вот, отвечу тут — плагин так и называется Shortcoder, в использовании прост как 5 копеек. Устанавливаете, открываете настройки, переключаетесь с визуального редактора на текст и вставляете свой код, сохраняете.
Теперь в редакторе текста wordpress у вас появится доп. кнопочка, кликнув по которой выводится список созданных вами шоткодов. Еще один клик по кнопке Insert Shortcode и данный шоткод будет размещен в записи
Для плагиноненавистников есть и другой способ — можно вручную добавлять шорткоды непосредственно в functions.php и затем выводить их точно так же в квадратных скобках с заданными именами, но как по мне этот вариант сильно проигрывает плагину по времени и удобству — нужно будет самому прописывать функцию, атрибуты и ее вывод а затем еще и имена шорткодов вручную писать в статье, да не забыть и не ошибиться бы. Так что даже рассматривать его не буду, просто знайте что такой вариант есть и спите спокойно)
Могу посоветовать еще один полезный плагин для работы с шорткодами, который уже содержит в себе готовые к работе шорткоды — Shortcodes Ultimate
Точно так же, при редактировании записей на панели появляется кнопка «Вставить шорткод», кликнув по которой глаза разбегаются от возможностей
Наиболее интересные для меня — вставка колонок, аккордеонов, спойлеров, кнопок, всевозможные выделения текста и т.д.
У каждого шорткода есть свои настраиваемые параметры и можно вручную задавать CSS класс, так что с настройкой визуального отображения полная свобода.
Таким образом можно обыкновенный бесплатный шаблон быстро превратить в премиум, по крайней мере в плане дизайна =)
Надеюсь данная статья была вам полезна, удачи.
Комментариев: 38
Вообще не понятно для чего они нужны 🙂
У тебя в начале очапятка «шоткод не заработает» 🙂
Это не опечатка, это тонкий сео-расчет 🙂
Блин, ну вот нада тебе в статью воткнуть код, например рекламного блока от гугл. Ты что будешь делать? Открывать страницу, включать редактор html и копировать в нужное место довольно крупный кусок кода, правильно?
А если страниц 10? А если 100? А если потом отключить захочешь эту рекламу, пойдешь опять сотни страниц редактировать?) А так шорткодом в пару кликов все решается, экономится время.
Плюс в премиум темах многие функции на шоткодах заточены — всякие там выезжающие списки, текст в несколько колонок на одной странице, выделения и т.д. Вручную все настраивать стилями и кодами очень много времени уйдет, а так пару кликов и готово.
Я так понимаю, чтобы вставить рекламный код в тело записи нужно использовать шорткод?
Можно и без шоткода обойтись, но с ним быстрее и удобнее.
Теперь все понятно! Спасибо за разъяснения! 😉
Шорткоды — хорошая штука. Тоже их использую. А рекламу же не обязательно в каждую статью вставлять. Есть специальные плагины по выводу кода в статьях. Один раз вставил нужный код в настройках плагина, потом реклама автоматом в каждых статьях в нужных местах будет сама выводиться.
Приветствую Сергей. Нижний блок в статьях у меня так и выводится скриптом — один раз и во всех статьях. Но есть проблема — зачастую это влияет на отображение самой статьи, я с этим блоком порой мучаюсь, что бы он гармонично смотрелся приходится разбавлять текст, добавлять абзацы и т.д.
А шоткодом куда считаешь нужным можно вставить, ведь в каждой статье по разному бывает и кол-во символов и заголовков и картинок, все это стоит учитывать.
Привет! Давно не списывались))) Спрошу здесь, такая проблема, как раз касаемо шорткодов:
Имеется кнопка выведенная на странице шорткодом.
Внимание вопрос: Как к этой кнопке прикрутить модальное окно?
Эта функция по выводу шорткодов — встроенная возможность ВП?
Вот так, возисся-возисся с премиум-шаблонами, глядишь и весь кодекс ВП выучишь)))
Артем, вывод шорткодов да, функция встроенная в ВП.
Насчет кнопки — есть несколько вариантов вывода, используй который подходит. Это плагины (если контактная форма то я использовал плагин simplemodal contact form) это яваскрипты и даже с помощью CSS3.
Однако скорей всего придется найти в файлах шаблона саму функцию исполняемого шорткода и туда уже вносить коррективы
Хм, как-то сложно все. Я немного по другому делал: кнопка — это ведь по сути ссылка с оформлением, так что я использовал плагин Easy Modal, который формирует ссылку на модальное окно и к этой ссылки применял нужные стили. Мне так проще было
У плагина что я написал такая же возможность — просто задаешь для ссылки определенный класс и окно автоматически привязывается к этой ссылке
Спасибо за информацию! Как раз искал ответ на этот вопрос. Повезло нам с этим блогом.
🙄
Не за что, Павел, рад что пригодилась статья.
Хороший приемчик. Ведь туда можно любой код воткнуть и оперативно менять на лету.
В некоторых темах эта фича зашита (но далеко не у всех)
Угу, а некоторые спрашивают, зачем нужны шоткоды. Вот когда придется менять один и тот же код на паре сотен страниц, тогда поймут зачем они нужны 🙂
Сразу освоят, как будут опыты с контекстом делать 🙂
Привет!
Shortcodes Ultimate — ну очень крутой плагин. Мне тоже в нем нравятся всякие аккордеоны-спойлеры и т.п. Разработчик по-моему один из наших (или русский, или украинец).
Shortcoder — тоже ничего. Для вставки рекламных блоков в тело статей, самое то.
Наш-наш, я с ним даже общался. Адекватный товарищ
Привет. О как, я даже не знал, ну респект русским програмерам =)
Сергей! Срочно появись в скайпе, есть дело!
Не знал про Shortcodes Ultimate. Спасибо за пост и дельные комменты
Классный плагин, сильно облегчает задачи верстки
Как для меня, статья оказалась очень полезной и хорошо «разжеванной». Спасибо Сергей. Обязательно попробую применить шорткоды у себя на блоге.
Владимир, рад что пригодилось
Интересный плагин. Я о таком еще не слышала. Надо будет попробовать воспользоваться.
спасибо помогло
Добрые люди, помогите мне.
Есть шорт код [ video-gallery inpage=»2″ h=’225′ w=»300″ ]
Мне надо как то вывести его на главную страничку своего сайта
Шорткод относится к видео галереи
Здравствуйте. Если у вас статичная главная, то достаточно просто открыть ее в редакторе и добавить в нужное место шоткод. Если же нет, то нужно будет открывать шаблон главной (она может называться по разному в разных шаблонах: index.php, main.php или наподобие) и вставить туда шорткод с помощью описанного в данной статье способа.
А как вывести не сам шорткод, а результат работы шорткода в php-файле?
Поздно увидел коммент, прошу прощения. Разобрался уже?
Нет, не разобрался!)
Если нужно только результат работы вывести, то достаточно открыть страницу с этим самым шорткодом, посмотреть html код и скопировать нужный фрагмент, вставить его куда нужно. Это если я правильно понял задачу.
Шорткод стоит в сайдбаре, а результат выводится в основном контенте, только он выводится не в том месте, в котором нужно
Эксперименты пока не помогли, блоки подгружаются из разных скриптов и где именно что менять так и не понял!
сами посмотрите на сайте parnas-friends.ru в левом сайдбаре стоит блок «Найти друзей» результат которого выводится вверху страницы, а нужно, чтобы он выводился под полем Поиска и меню, которое под поиском
Про место вывода результатов не совсем понял если честно. Проверил работу блока — все ок выводится, работает как надо)
Нужно искать в php файлах сайта скрипт вывода результатов, возможно для этого есть специально созданная шаблонная страница для вывода результатов данного блока, все зависит от вашего шаблона, тут индивидуально.
Сергей, спасибо за ответы, но именно в шаблонной странице и делались эксперименты с кодом. Результаты работы шорткода в сайдбаре выводятся строго НАД полем поиска, а нужно ПОД полем поиска!
Просто Поле Поиска где-то в отдельном файле родительской темы прописано, нужно найти где!
В общем, будет время, сам ещё поэкспериментирую!
Здравствуйте, у меня тут проблема на сайте случилась. Не выводится. не показывается видео с ютуб в уже опубликованном материале?! Можно как то это исправить. к примеру шорткодом?
Приветствую Иван. Исправить конечно можно, однако причин для этого может быть много, поэтому так не глядя трудно разобраться. Это могут быть и конфликты в скриптах, и косяки верстки, и неправильная работа плагинов, и неправильно вставленное видео в статью и т.д.