Было ли у вас такое, что хотелось добавить какой-то специальный контент на страницу или запись блог на WordPress, но вы не были уверены как именно это лучше сделать? Может быть вы хотели встроить виджет Twitter или другой контент, вызываемый с другого сайта через API? Получится ли без проблем добавить его на страницу? К счастью, у WordPress есть такая фишка как шорткод, который и поможет в решении вышеописанных задач. Эта статья научит вас создавать, устанавливать и использовать шорткоды в вашем блоге на ВП. Давайте разберемся для начала, что такое этот шорткод.
WordPress шорткод — кто ты?
Вкратце, шорткод — это специальный тег, который вы вставляете в пост, и этот ‘короткий код’ заменяется различным контентом уже при выводе записи конечному пользователю сайта. Если вы когда-то встраивали WordPress галерею в свой блог, то видели встроенный в движок шорткод.
Когда вы загружаете страницу с имеющемся на ней шорткодом [ gallery], Ворпдесс полностью заменяет [ gallery] кодом, который собственно и отображает галерею ваших изображений.
Как видно из вышеприведенного примера, шорткод похож на обыкновенный тег HTML, однако он заключается в квадратные скобки, вместо < и >. Этот код заменяется другим кодом в то время, когда загружается браузером. И, естественно, WordPress позволяет нам создавать собственные шорткоды для вывода всего, чего угодно! Можно использовать его для видео на Youtube , выводить ваши свежие твиты, а также настраивать по собственному усмотрению.
Давайте рассмотрим реальный пример. Скажем, нам нужно вывести рекламу AdSense в моей записи. Для этого можно зайти в текстовый режим визуального редактора WordPress и скопировать/вставить код блока AdSense в него, но это будет утомительно и обезобразит исходный код записи. К тому же, если появится необходимость изменить рекламный блок, тогда придется править каждый пост, в который мы вставили рекламу. Простым же решением (и более рациональным) вставки блока рекламы в любое место на блоге будет использование шорткода adsense. Он может выглядеть примерно так:
[adsense]
Когда же вы будете просматривать запись на своем сайте (не в админ.панели), шорткод заменится блоком рекламы от Adsense. Так как же его создать? Очевидно, что нужно сообщить Ворпдессу, что нужно заменить и чем.
Как создать шорткод?
К счастью, WordPress позволяет создавать шорткоды довольно незамысловатым образом, поэтому давайте создадим [adsense]. Первое, что нам нужно, это определить функцию, которая будет выводить рекламный код Адсенса. Весь нижеприведенный код вставляем в файл functions.php вашей темы (хотя можно оформить и в отельный файлик плагина). Давайте посмотрим на саму функцию:
function get_adsense($atts) { return '<script type="text/javascript"><!-- google_ad_client = "pub-546321545321589"; /* 468x60, created 9/13/10 */ google_ad_slot = "54321565498"; google_ad_width = 468; google_ad_height = 60; //--> </script> <script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script> '; }
Эта функция довольно проста — она просто возвращает код Google Adsense в виде строки. Шорткод будет заменен на все то, что возвратит наша функция, т.е. теоретически можно получить html для виджета Twitter, или список записей блога, или что-то еще…
Теперь у нас есть функция, которая возвращает нужные нам значения, как же сделать шорткод для нее? Теперь в дело вступает WordPress API. Опять же, давайте посмотрим как это делается, а потом объясним что происходит. Вот вызов для определения шорткода adsense.
add_shortcode('adsense', 'get_adsense');
Вот и все! Первый передаваемый параметр — это название шорткода, в нашем случае ‘adsense’, которое говорит Ворпдессу создать шорткод [adsense]. Второй параметр определяет функцию, которая будет вызвана, когда встретится новый шорткод. В нашем случае ‘get_adsense’ говорит ВП заменить шорткод [adsense] результатами функции get_adsense.
Неплохо, да? Это самый простой шорткод, однако WordPress позволяет проделывать с ними различные вещи (добавлять параметры для переключения блоков Адсенса, например). Полное API можно найти на WordPress Codex.
Как использовать шорткод?
Это самая простая часть: просто добавьте [adsense] в визуальном/текстовом редакторе записи либо страницы. Всё. Вы создали свой первый шорткод.