Шорткоды, часть 1. Использование шорткодов WordPress в шаблоне.

Shortcodes API первая часть. Как вывести шорткоды в вордпресс. Зачем они нужны.

Понравилась статья? Оставьте оценку:

  1. 5
  2. 4
  3. 3
  4. 2
  5. 1
(0 голосов, в среднем: 0 из 5)

Сегодня поговорим о шорткодах. Возможно, вы уже слышали что это такое, а может и нет. Так вот. Этот термин появился с версии 2.5, именно тогда разработчики ввели Shortcode API.

Шорткод — это макрокоманда определенного вида, позволяющая добавлять в посты свои функции. В принципе, это и есть php процедура определенным образом вызываемая на странице.

Примерчик. В вордпрессе уже есть заранее предопределенная команда для отображения галереи. Вставьте в контент шорт [gallery] — и, вуаля, посреди контента выведется фотогалерея. Как и у функции — у нее могут быть параметры: [gallery size="large" ids="14243,14242,14241"] Думаю понятно, что выведутся миниатюры размера large и с определенными айди.

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

По умолчанию уже присутствуют вот такие:

  1. Фотогалерея: [gallery ids="id изображений"]
  2. Аудиоплеер: [audio mp3="ссылка-на-аудио"]
  3. Видеоплеер: [video src="ссылка-на-видео"]
  4. Картинка с подписью: [caption src="ссылка-на-видео"]<img src="ссылка на изображение" /> Подпись к картинке [/caption]

Более подробно о параметрах для вышеперечисленных шорткодов можно узнать на сайте вордпресса. Ссылки можно просмотреть:

Что делать если шорткод не работает

Бывает так что вставляем все правильно, но наш короткий код не выполняется, а выводится просто содержание статьи. Такое случается, если в данном месте программисты не позаботились об обработке нашего шорткода в теме. Откроем соответствующий темплейт (например у меня это single.php для одиночной записи) и видим, что вывод осуществлен таким образом:

<?php echo get_the_content(); ?>

Таким образом на переменную не распространяется процедура do_shortcode(), которая отвечает за «обработку» нашей макрокоманды в контенте. (Напомню, что стандартный метод вывода с помощью <?php the_content(); ?> самостоятельно «выполняет» шорткоды)

Как поступить в таком случае? Получить контент поста в переменную и обработать вот так:

<?php $content = get_the_content(); ?>
<?php echo do_shortcode($content); ?>

На этом пожалуй все, в скором времени мы поучимся писать собственные макрокоманды.

Оставить комментарий