Работа с шорткодами в WordPress

Каждый блоггер, использующий популярную CMS WordPress, знает, что такое плагины и наверняка замечал, что многие из них поддерживают функцию вывода работы плагина непосредственно в записи с помощью короткого кода, заключенного в квадратные скобки. Называется этот код – шорткод (shortcode).

создать шорткод WordPress

Давайте возьмем для наглядности популярный WP плагин контактной формы Contact form 7, с помощью которого можно легко создать форму обратной связи и разместить ее на странице или в записи.

А подключается она с помощью вот такого небольшого кода: [contact–form–7 id=“1”]. За ним скрывается функция, содержащая очень много кода, который размещать на странице сайта в первозданном виде для неопытного пользователя весьма проблематично. А для опытного – времязатратно.

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

Попробую дать определение этому термину.

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

Шорткод (Shortcode) – это короткий код, который позволяет выполнить работу какой-либо функции WordPress в месте его вставки.

Как создать шорткод в WordPress

Создать шорткод в WordPress можно 2 способами:

  1. Создать функцию в Вордпресс и зарегистрировать для нее шорткод в файле functions.php;
  2. Воспользоваться плагином для создания шорткодов.

Рассмотрим только первый вариант. От плагинов, по возможности стоит отказываться.

Сделать шорткод в WP, используя functions.php

Прежде всего, нужно открыть файл functions.php вашей темы, который расположен в папке wp-content/themes/ваша_тема/.

Зарегистрировать шорткод в файле functions.php очень просто. Все что нужно сделать - это к существующей функции привязать шорткод следующей конструкцией:

add_shortcode('short_code', 'function_name');

Где:

Add_shortcodeфункция регистрации шорткода в WP.

Параметр short_code – это имя вызова шорткода. Именно конструкцией [short_code] в теле записи вы и будете вызывать основную функцию.

Function_name – это имя функции, которую вы регистрируете.

Давайте на примере рассмотрим, как создать шорткод в Вордпресс:

Поставим задачу: вставить рекламный блок Adsense в любое место записи с помощью шорткода.

Как это реализовать:

// Регистрируем функцию
function add_adsense() {
//Возвращаем функцию
return '
<!-- Добавляем код вывода рекламного блока -->
<script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
<ins class="adsbygoogle"
style="display:block"
data-ad-client="ca-pub-9572020962030512"
data-ad-slot="1604412683"
data-ad-format="auto"></ins>
<script>
(adsbygoogle = window.adsbygoogle || []).push({});
</script>
<!-- закончили вывод рекламного блока -->
';
}
//Регистрируем шорткод
add_shortcode( 'adsense', 'add_adsense' );

Все, теперь при вставке в запись или на страницу WordPress шорткода [adsense] будет выводиться реклама Adsense.

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

http://www.internet-technologies.ru/articles/article_1824.html

Shortcodes Ultimate – плагин для вставки шорткодов в WP

В сети нашел очень интересный плагин для вставки готовых шорткодов в WordPress записи и на страницы - Shortcodes Ultimate.

С помощью него можно:

  1. Вставлять спойлеры, аккордеоны, якори;
  2. Создавать вкладки (табы);
  3. Использовать колонки;
  4. Работать с медиа (Youtube, Vimeo и т.д.);
  5. Вставлять красивые кнопки;
  6. Добавлять классную анимацию;
  7. Оформлять цитаты, блоки рамки и др.;
  8. Создавать лайтбоксы;
  9. Вставлять RSS ленту;
  10. Добавлять таблицы;
  11. Организовать слайдер;
  12. Делать QR-код;
  13. Создавать карусель;
  14. И многое другое.

Всего этот плагин включает более 50-м различных шорткодов, которые повысят продуктивность работы с WordPress и помогут решить очень много различных задач.

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

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

Использование Shortcodes Ultimate позволит отказаться от применения других мелких плагинов.

Скачать Shortcodes Ultimate можно из раздела установки плагинов административной панели WordPress или по ссылке: https://wordpress.org/plugins/shortcodes-ultimate/.

Вставка шорткода в файлы темы

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

Для этого нужно использовать функцию do_shortcode:

<?php echo do_shortcode('[short_code]'); ?>

Где short_code – нужный шорткод.

Этой же конструкцией можно выводить работу шорткода в WordPress виджетах.

Шорткоды – замена Exec-PHP

Записи и страницы WordPress позволяют встраивать в них HTML, CSS, JavaScript. Однако принимать PHP они отказываются. Поэтому многие пользователи используют плагин Exec-PHP для интеграции кода.

Используя функции и шорткоды можно легко добавлять PHP в WordPress записи и избавить себя от необходимости пользоваться данным плагином.

Встроенные шорткоды Вордпресс

По умолчанию в ВП уже есть некоторый набор шорткодов:

  1. Вставка аудио;
  2. Видео;
  3. Добавление галереи;
  4. Caption.

Проблема. Шорткод выводится вверху статьи

К сожалению, я не очень хороший кодер и с PHP я на вы. Поэтому при первом знакомстве с шорткодами я допустил одну непростительную ошибку: вместо return использовал echo, что привело к неправильной работе функции. А именно – она выводилась не в месте вставки шорткода, а вверху записи, над всем текстом. Поэтому, для устранения неисправности просто замените функцию вывода echo на функцию возврата return. И проблема решится.

Комментарии к “Работа с шорткодами в WordPress

  1. Все более-менее понятно.
    Скажите, как правильно вставить подряд 2 шорт-кода?
    Я вообще не силен в PHP, прошу разжевать.
    Спасибо!

  2. Не совсем понимаю, что вы имеете ввиду. Вам нужно прописать 2 разных шорткода или повторить один и тот же?

    1. Как применить к одному объекту два шорткода? Мне нужна рамка вокруг изображения и всплывающая подсказка к нему же.

  3. ЮРИЙ БЕЛОУСОВ, 2 раза тот-же только с разными кодами адсенса, 2 рекламных блока — 1 в начале статьи, второй ближе к концу. …

    1. Просто создайте 2 разные функции.
      Например:
      function add_adsense_top() и function add_adsense_bottom()
      Поместите в каждую из них нужный код, а затем зарегистрируйте шорткоды:
      add_shortcode(‘adsense_top’, ‘add_adsense_top’);
      и
      add_shortcode(‘adsense_bot’, ‘add_adsense_bottom’);
      Хотя для добавления в начале статьи рекламного блока, проще было бы в файл single.php (иногда — content-single.php), перед выводом функции content, добавить код Adsense. Тогда не придется его постоянно вставлять вручную с помощью шорткодов.

  4. Здравствуйте, хотелось узнать, а как сам Адсенс относится к использованию шорткодов, я просто новичек, поэтому хотелось бы уточнить, не будет ли за это бан или еще что нибудь. Хотя вроде бы сам код адсенса мы же не изменяем

  5. А какой у вас стоит плагин с социалками и рейтингом? «Внимание! Кликанье по соц. кнопкам повышает репутацию, харизму, потенцию, снимает сглаз…»

  6. shortcodes ultimate wordpress поставила, чтобы вставлять в статью шорткод слайдера WOW Slider . Отдельно слайд производится, а когда вставляю в статью, то одна картинка стоит т е весь не производится. Может чем то поможете..

  7. Здравствуйте Юрий! А не подскажете, шорткоды работают только в постах и страницах? Возможно ли их использовать в комментариях? Что-то не получается…
    Или шорткоды в принципе рассчитаны только для постов и страниц?

    1. ВП автоматом преобразовывает скобки [ ] в html-код. Они не распознаются как код, потому и не вставляется шорткод.

        1. Добавьте в functions.php вашей темы

          add_filter(‘comment_text’, ‘do_shortcode’);

          и будет вам счастье

  8. Добрый день.
    А можно ли реализовать вывод кнопки при помощи Shortcodes Ultimate (или неважно чем) перед статьей? То есть в статье будет только текст, а кнопка перед статьей. Для каждой статьи у меня идут одинаковые кнопки с разными ссылками. Хотелось бы их с тела статьи выбросить.

    1. Если у кнопок разные ссылки, то шорткоды вам тут не помогут. Проще добавлять кнопки в редакторе и там же назначать класс, к которому прописаны стили кнопок.

  9. Подскажите пожалуйста, я где-то наумничал и вставил код или шорткод [posts] и ниже блок рекламы гугла, который выводится перед товарами (магазин на woocommerce) и в поиске.
    Я теперь нигде немогу найти где этот код чтобы его удалить. Как можно вычислить из какого файла он вызывается?

    1. Можно использовать Notepad++ или DreamWeaver. У них есть функция поиска по файлам.
      Через «Просмотр кода» в браузере смотрите какой class или id присвоен у элемента и по нему уже ищите.

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

Ваш e-mail не будет опубликован. Обязательные поля помечены *