Как вывести шорткод в файлы шаблона 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 класс, так что с настройкой визуального отображения полная свобода.

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

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

Понравилась статья? Поделись с другими:

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

  • Вообще не понятно для чего они нужны 🙂

    У тебя в начале очапятка «шоткод не заработает» 🙂

    [Ответить]

    Сергей Кобзарь отвечает:

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

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

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

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

    [Ответить]

    Александр отвечает:

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

    [Ответить]

    Сергей Кобзарь отвечает:

    Можно и без шоткода обойтись, но с ним быстрее и удобнее.

    [Ответить]

    Александр отвечает:

    Теперь все понятно! Спасибо за разъяснения! 😉

    [Ответить]

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

    [Ответить]

    Сергей Кобзарь отвечает:

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

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

    [Ответить]

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

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

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

    [Ответить]

    Сергей Кобзарь отвечает:

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

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

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

    [Ответить]

    Артем отвечает:

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

    [Ответить]

    Сергей Кобзарь отвечает:

    У плагина что я написал такая же возможность — просто задаешь для ссылки определенный класс и окно автоматически привязывается к этой ссылке

    [Ответить]

  • Хороший приемчик. Ведь туда можно любой код воткнуть и оперативно менять на лету.
    В некоторых темах эта фича зашита (но далеко не у всех)

    [Ответить]

    Сергей Кобзарь отвечает:

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

    [Ответить]

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

    [Ответить]

    Артем отвечает:

    Наш-наш, я с ним даже общался. Адекватный товарищ

    [Ответить]

    Сергей Кобзарь отвечает:

    Привет. О как, я даже не знал, ну респект русским програмерам =)

    [Ответить]

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

    [Ответить]

    Сергей Кобзарь отвечает:

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

    [Ответить]

  • А как вывести не сам шорткод, а результат работы шорткода в php-файле?

    [Ответить]

    Сергей Кобзарь отвечает:

    Поздно увидел коммент, прошу прощения. Разобрался уже?

    [Ответить]

    Владислав отвечает:

    Нет, не разобрался!)

    [Ответить]

    Сергей Кобзарь отвечает:

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

    [Ответить]

    Владислав отвечает:

    Шорткод стоит в сайдбаре, а результат выводится в основном контенте, только он выводится не в том месте, в котором нужно

    [Ответить]

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

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

    [Ответить]

    Сергей Кобзарь отвечает:

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

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

    [Ответить]

    Владислав отвечает:

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

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

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

    [Ответить]

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