Как вывести шорткод в файлы шаблона wordpress

Wordpress

Всем привет, друзья, давненько у меня на блоге не было практических постов, да и вообще каких-либо постов =) Я никуда не пропал, просто работаю, и именно по работе мне пришлось столкнуться с такой задачей — как вывести шорткод не в сам блок с контентом, а непосредственно в тело шаблона.

Ведь если вы по аналогии просто скопируете [shortcode] как это делаете в записях, и вставите его в код, например в header.php, то ничего не выйдет, шоткод не заработает.

Для тех кто вообще не понимает о чем речь и что такое шорткод (shortcode от англ. короткий код) — это вызов фрагмента кода, записи или функции небольшим тегом, помещенным в квадратные скобки [имя_шорткода].  Делается это для удобства — что бы не вставлять каждый раз огромные куски кода, можно просто воткнуть маленький шоткодик) Или если вы используете очень часто один и тот же код, как например я вставляю блоки с рекламой в статьи — все это делается через шорткоды в 2 клика.

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


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

<?php echo do_shortcode('[ваш_шорткод][/ваш_шорткод]'); ?>

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

Знаете ли вы, что в движок WordPress заложены несколько базовых шорткодов, которыми вы можете пользоваться, например вывод галереи шорткодом [gallery]. Подробнее можно почитать на оф. сайте вордпресса http://codex.wordpress.org/Shortcode.

Как самому создавать шорткоды и выводить их в записях

Меня неоднократно спрашивали, как я вставляю блоки с рекламой на сайте, каким плагином. Так вот, отвечу тут — плагин так и  называется Shortcoder, в использовании прост как 5 копеек. Устанавливаете, открываете настройки, переключаетесь с визуального редактора на текст и вставляете свой код, сохраняете.

shortcode

Теперь в редакторе текста wordpress у вас появится доп. кнопочка, кликнув по которой выводится список созданных вами шоткодов. Еще один клик по кнопке Insert Shortcode и данный шоткод будет размещен в записи

шорткод плагин

Для плагиноненавистников есть и другой способ — можно вручную добавлять шорткоды непосредственно в functions.php и затем выводить их точно так же в квадратных скобках с заданными именами, но как по мне этот вариант сильно проигрывает плагину по времени и удобству — нужно будет самому прописывать функцию, атрибуты и ее вывод а затем еще и имена шорткодов вручную писать в статье, да не забыть и не ошибиться бы.  Так что даже рассматривать его не буду, просто знайте что такой вариант есть и спите спокойно)


Могу посоветовать еще один полезный плагин для работы с шорткодами, который уже содержит в себе готовые к работе шорткоды —  Shortcodes Ultimate

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

плагин для шорткодов

Наиболее интересные для меня — вставка колонок, аккордеонов, спойлеров, кнопок, всевозможные выделения текста и т.д.

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

Таким образом можно обыкновенный бесплатный шаблон быстро превратить в премиум, по крайней мере в плане дизайна =)

Надеюсь данная статья была вам полезна, удачи.

Комментариев: 38

    • Это не опечатка, это тонкий сео-расчет 🙂

      Блин, ну вот нада тебе в статью воткнуть код, например рекламного блока от гугл. Ты что будешь делать? Открывать страницу, включать редактор html и копировать в нужное место довольно крупный кусок кода, правильно?

      А если страниц 10? А если 100? А если потом отключить захочешь эту рекламу, пойдешь опять сотни страниц редактировать?) А так шорткодом в пару кликов все решается, экономится время.

      Плюс в премиум темах многие функции на шоткодах заточены — всякие там выезжающие списки, текст в несколько колонок на одной странице, выделения и т.д. Вручную все настраивать стилями и кодами очень много времени уйдет, а так пару кликов и готово.

  • Шорткоды — хорошая штука. Тоже их использую. А рекламу же не обязательно в каждую статью вставлять. Есть специальные плагины по выводу кода в статьях. Один раз вставил нужный код в настройках плагина, потом реклама автоматом в каждых статьях в нужных местах будет сама выводиться.

    • Приветствую Сергей. Нижний блок в статьях у меня так и выводится скриптом — один раз и во всех статьях. Но есть проблема — зачастую это влияет на отображение самой статьи, я с этим блоком порой мучаюсь, что бы он гармонично смотрелся приходится разбавлять текст, добавлять абзацы и т.д.

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

  • Привет! Давно не списывались))) Спрошу здесь, такая проблема, как раз касаемо шорткодов:
    Имеется кнопка выведенная на странице шорткодом.
    Внимание вопрос: Как к этой кнопке прикрутить модальное окно?

    Эта функция по выводу шорткодов — встроенная возможность ВП?

    Вот так, возисся-возисся с премиум-шаблонами, глядишь и весь кодекс ВП выучишь)))

    • Артем, вывод шорткодов да, функция встроенная в ВП.

      Насчет кнопки — есть несколько вариантов вывода, используй который подходит. Это плагины (если контактная форма то я использовал плагин simplemodal contact form) это яваскрипты и даже с помощью CSS3.

      Однако скорей всего придется найти в файлах шаблона саму функцию исполняемого шорткода и туда уже вносить коррективы

      • Хм, как-то сложно все. Я немного по другому делал: кнопка — это ведь по сути ссылка с оформлением, так что я использовал плагин Easy Modal, который формирует ссылку на модальное окно и к этой ссылки применял нужные стили. Мне так проще было

  • Привет!
    Shortcodes Ultimate — ну очень крутой плагин. Мне тоже в нем нравятся всякие аккордеоны-спойлеры и т.п. Разработчик по-моему один из наших (или русский, или украинец).
    Shortcoder — тоже ничего. Для вставки рекламных блоков в тело статей, самое то.

  • Добрые люди, помогите мне.
    Есть шорт код [ video-gallery inpage=»2″ h=’225′ w=»300″ ]
    Мне надо как то вывести его на главную страничку своего сайта
    Шорткод относится к видео галереи

    • Здравствуйте. Если у вас статичная главная, то достаточно просто открыть ее в редакторе и добавить в нужное место шоткод. Если же нет, то нужно будет открывать шаблон главной (она может называться по разному в разных шаблонах: index.php, main.php или наподобие) и вставить туда шорткод с помощью описанного в данной статье способа.

  • Эксперименты пока не помогли, блоки подгружаются из разных скриптов и где именно что менять так и не понял!

    сами посмотрите на сайте parnas-friends.ru в левом сайдбаре стоит блок «Найти друзей» результат которого выводится вверху страницы, а нужно, чтобы он выводился под полем Поиска и меню, которое под поиском

    • Про место вывода результатов не совсем понял если честно. Проверил работу блока — все ок выводится, работает как надо)

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

      • Сергей, спасибо за ответы, но именно в шаблонной странице и делались эксперименты с кодом. Результаты работы шорткода в сайдбаре выводятся строго НАД полем поиска, а нужно ПОД полем поиска!

        Просто Поле Поиска где-то в отдельном файле родительской темы прописано, нужно найти где!

        В общем, будет время, сам ещё поэкспериментирую!

  • Здравствуйте, у меня тут проблема на сайте случилась. Не выводится. не показывается видео с ютуб в уже опубликованном материале?! Можно как то это исправить. к примеру шорткодом?

    • Приветствую Иван. Исправить конечно можно, однако причин для этого может быть много, поэтому так не глядя трудно разобраться. Это могут быть и конфликты в скриптах, и косяки верстки, и неправильная работа плагинов, и неправильно вставленное видео в статью и т.д.

Добавить комментарий