Как создаются шорткоды? Пример простого шорткода
Здравствуйте! Сегодня, как и обещал техническая часть использования шорткодов. Применение шорткодов дает возможность, прописав в редакторе одно слово, сопоставить с ним большой код.
Таким образом, можно быстро выводить рекламные баннеры, форму подписки и другие заготовленные вами шаблоны. Это может быть, как код html, так и скрипты.
Итак, как же создаются шорткоды?
Я покажу сам процесс на примере вывода строчки подписи. А вы уже по аналогии сможете создавать и добавлять другие свои шорткоды.
Итак, процесс состоит из 3 этапов:
- Подготавливается код блока, который нужно выводить в теле поста.
- Прописывается функция в файле functions.php вашей темы
- Вставка конструкции (кодовое слово)
Давайте пройдем все эти шаги создания шорткода
Подготовка кода. Например, вот код подписи html.
Его можно просто вставить в статью, как это и делается обычно или править в визуальном редакторе. Но наша задача вывести текст подписи с помощью шорткода.
Следующий шаг я сначала объясню, а потом сделаем его.
Итак, находим свою тему и в ней файл functions.php. Это можно сделать локально или из админки блога (Внешний вид — редактор).
Если не уверены, как обращаться с functions.php — делайте сначала локально (или прежде сохраните исходный functions.php.)
Открываем файл functions.php. В самом конце кода файла, перед закрывающим тегом php, имеющим вот такой вид ?> прописываем новую функцию, которая будет выводить наш шорткод.
Вот как она выглядит.
То есть, просто добавляем этот код в functions.php. Затем сохраните измененный файл functions.php, а в админке в визуальном редакторе пропишите слово avtor, заключенное в квадратные скобки. Вот так.
У вас должна после обновления страницы появится фраза «здесь ваш html код или скрипт». Если есть, значит сделали все правильно. Значит саму суть вы уже уловили.
Но нам ведь нужно вывести код подписи html? А в последствии любой другой. Не так ли?
Поэтому давайте вникнем в саму суть этой функции:
Если вы сейчас разберетесь, что за что отвечает, вы сможете создавать свои шорткоды. В данном случае, считайте, что это и есть своеобразный шаблон шорткода.
Все что нужно делать — это менять текст в одинарных кавычках, прописывать новое название для функции вывода и кодовое слово.
Первая часть функции:
Эта и есть сама функция, которая выводит заданный между одинарными кавычками текст «здесь ваш html код или скрипт».
Сама функция имеет название «my» (название вы даете сами, я назвал «my»), затем идет стандартный синтаксис кода php, (скобки) и в одинарных кавычках текст, который будет выводиться в теле поста.
Вторая часть функции:
Это параметры вывода: avtor – кодовое слово, my – как вы уже знаете, название функции.
То есть, в нашем случае, как все работает? Вы обновили файл functions.php с уже прописанной новой функцией и прописали в редакторе админки в квадратных скобках слово avtor.
И вот, в теле поста появилась строчка «здесь ваш html код или скрипт»
Еще раз давайте уясним этот момент. У нас есть функция «my», при обращении к которой с помощью слова «avtor», в теле поста всегда появится то, что прописано в одинарных кавычках.
Вот такой принцип. Теперь по аналогии, чтобы нам вывести подпись, нужно в одинарные кавычки вставить код.
Получится следующее
Сохраняем functions.php, обновляем.
В визуальном редакторе, в нужном месте прописываем слово avtor в квадратных скобках. Функция в теме прописана и команда для вывода текста дана.
Делаем все по аналогии с любым другим кодом
Теперь по аналогии можно сделать шорткод для вывода, например, рекламы google или Яндекс. Нам нужен будет код рекламы, затем дать название функции вывода и задать кодовое слово.
Внимание! Для нового шорткода дается новое название функции и новое кодовое слово.
- Для этого идете в админку google adsense или profit-partner, забираете код рекламного блока.
- Опять открываете functions.php, добавляете перед закрывающим тегом новый шорткод. Можете скопировать уже имеющийся и сделать его правку.
- В одинарные кавычки нужно вставить рекламный код.
- Вместо функции «my» придумываете новую, например «google», меняете дважды в первой части кода и во второй.
- Затем придумываете кодовое слово «googlereklama».
- Сохраняете functions.php, обновляете (если локально делаете изменения).
- Пишете в теле поста в googlereklama и у вас появляется реклама.
Qwertypay-Заработок в партнёрках!
Qwertypay – Агрегатор партнерских программ. Регистрируйся и зарабатывай!
specialist.qwertybiz.com
Итак, по аналогии, все что вы придумаете. Например, форму подписки, баннер партнерки, форму Смартреспондера.
В этом деле самая сложная часть – это 1 шаг, а дальше все по шаблону. Даете название функции вывода, текст вывода (код) и кодовое слово.
Цель моего поста показать, как работает шорткод в его простейшей форме, потому что функции могут быть и посложнее. Но саму суть вы должны были уловить.
А я своим подписчикам сделаю подарок. 15% скидку на курс Евгения Попова.
В момент оформления заказа, на последнем шаге, вам будет предложено ввести купон скидки. Вводите SKIDKA_9B8 и будет сделан перерасчет с учетом 15% скидки. Дерзайте! Свой блог я сделал, благодаря этому курсу. У вас также получится.
На этом у меня все. Подписывайтесь на обновления блога.
Автор: Игорь
Чистый звук в мире инфобизнеса
Игорь, благодарю! Осталось только внедрить. Если будут вопросы, обязательно напишу.
Конечно, Марина.
Здравствуйте, Игорь!С одного раза ничего не понял. Буду изучать!
Здравствуйте, Владимир! Я немного подправил, сейчас должно быть понятнее.
Благодарю, Игорь!
Игорь, спасибо! Оказывается все не так сложно.Тоже буду применять.
А можно еще вопросик по теме? Как Вы заключаете в рамку текст? Например Ваш анонс о конкурсе Василия Мясникова?
Рамку вокруг текста, как это делается — вот здесь
Только там описана рамка с непрозрачным фоном. У меня несколько таких стилей. Один с прозрачным фоном, другие — нет.
Спасибочки! Поэкспериментирую сначала на локальном хостинге. 😛
Можно и на реальном, если дело имеет со стилями или сохраняйте исходный файл отдельно, чтобы в случае чего, его вернуть.
Классно! Спасибо!! У меня получилось!! 😛
Поздравляю! )
Здравствуйте, Игорь!
А вот у меня ничего не вышло... 😈
Пробовал на локальном сервере поставить в текст форму подписки (тема стоит такая же, как и на реальном... В итоге — слово в квадратных скобках. Все вроде сделал, как у Вас...
Вы попробуйте сначала простую фразу вывести с помощью шорткода, чтобы уяснить технологию. Если это получится, значит и все остальное уже додумаетесь.
У меня почему-то в файле functions.php нет закрывающегося тэга ?>. Я его подставила, потом попробовала воспользоваться вашими советами, все получилось ОК 🙂
Спасибо! Сейчас начну экспериментировать, все же шорткоды штука очень удобная.
Он, как бы, и не нужен. Читал на форумах споры на эту тему, нужен — не нужен. В одних шаблонах есть, в других нет. Я придерживаюсь такого мнения, что если есть открывающий — логично, чтобы был и закрывающий тег. Хотя он не функционален, но с точки зрения логики нужен.
Я посмотрела другие темы, действительно, во многих закрывающегося тэга нет. Но тут у меня другая проблема нарисовалась: пока вставляешь html-коды, все нормально, но попробовала скрипт вставить и все слетело к чертовой бабушке. Хорошо еще я для этих экспериментов создала тестовый блог, там и развлекаюсь 🙂
Не должно слетать. У меня так работает вся реклама. Правда, я её вставляю прежде создав строку параграфа. Здесь нужно внимательным быть, чтобы не нарушить синтаксис шорткода. Например, стерлась одинарная кавычка, точка с запятой и т.д.
А от темы это может зависеть? Я на одной теме вставляю без проблем, а на другой этот же код вставляю, а в итоге ошибка сервера :- (
Может быть. Точно не могу сказать. Но, например, плагин «Раздвижных всплывающих панелей» не работает со многими темами. Например, с моей, почему я его и не использую. Причина — 100% особенность темы. Как-то так сверстана, что плагин, ну никак не хочет. С другими — криво работает. С иными — отлично.
Возможно, так и с шорткодами. Но у меня на 3-х блогах все превосходно фурычит. Поэтому мне даже и в голову не приходило, что могут быть где-то косяки.
А потом, я же не программист )) А блоггер, рекомендующий то, что у меня работает 🙂 А может быть, Елена, просто в function темы есть какие-то ошибки. Могу только предполагать.
Так именно этим ваши советы и ценны 🙂
Программисты так объясняют, что фиг поймешь, о чем речь, а у вас все ясно и понятно, если есть вопросы, то можно спокойно их обсудить.
Мне всегда интересно докопаться до сути, поэтому и лезу со своими вопросами, авось что-то новое узнаю 😉
Любознательность — двигатель научного прогресса. 😉
Если бы ещё знать ответы на многие вопросы 🙂
Спасибо, Игорь. Нужный функционал подсказали! Кстати, шорткоды все большее распространение получают в новых шаблонах для вордпресс!
Да, уж. Осенило 😉 2 года пользуюсь, только сейчас написал.
Здравствуйте, Игорь!
И у меня не получилось вывести форму подписки Смартреспондера. 🙁 Пробовала вывести просто текст через шорткод — получается. Вставляю код подписной формы — сайт просто перестает открываться. Думала что-то в коде формы подписки не так, вставила её стандартным способом в страничку — всё нормально. Не знаете с чем может быть связанно такая реакция сайта именно на форму рассылки? 😳
Попробуйте, Ульяна выводить не весь код, а только ту его часть, которая начинается с формы (form), где сами инпуты. А ту часть, кода (верхнюю), где прописаны function SR, я не использую.
Спасибо, Игорь!
Я попробовала, но форма отображалась не корректно. Пришлось самой написать простенькую divную форму с кнопкой — картинкой внизу и подставить инпуты рассылки. Все получилось! Спасибо!!! 🙄
Так оно и есть, Ульяна. У меня ведь также своя форма, заключенная в div. А от смартформы забраны только инпуты.
Игорь, вот читаю пост и думаю о том, на сколько же мобилен и гибок движок ВордПресс. Уже который раз убеждаюсь в правильности выбора именно этого блогового движка.
Спасибо Вам за полезную информацию.
Если сравнивать WordPress и Joomla, с которой я раньше познакомился, то WordPress более простой и понятный.
Согласен. А еще мне думается, что ВордПресс — менее «дыряв», то бишь более защищен от взлома.
Менее или более, не знаю, но обновляется регулярно.
У ВордПресса тоже с обновлениями — полный порядок, тем не менее «ломают», находят «дыры», редиски... А здесь думаю основная вина ложится на владельцев блогов, пренебрегают своевременным обновлением как самого движка, так и плагинов.
Безусловно. Обновления обновлениями, а меры безопасности нужно соблюдать.
А я Джумлу все же осилила с помощью курса Е.Попова, но потом ушла на Вордпресс. Сейчас думаю, может, есть смысл снова посмотреть, как этот движок работает, может тогда, когда опыта было мало, она такой сложной казалась? И вообще, когда заходишь в конструктор сайтов к хостеру, глаза разбегаются, хочется уже что-то другое, а то Водрпресс да Вордпресс 🙂
А я нет, не очень хочу что-то новое изучать. Осилил Joomla, создал сайт на ней, когда создал блог на WordPress, понял, что больше не хочу движки изучать. Хочу сосредоточится на выдаче контента, а какая «бумага» лучше, уже не интересует ))
В принципе этих 2 систем достаточно, чтобы больше не заморачиваться с изучением всего остального. Для портала — Joomla, (но честно скажу) мне она перестала нравится, особенно линейка 1.6. 1.7 2.0 — много лишнего. Хотя, опять же, готовится новый курс Попова, он новую волну создаст.
Если кто занимается плотно сайтостроением, тому ему нужно и Joomla знать, и WordPress, и движки магазинов, (я создавал на shop-script), чтобы удовлетворить запросы заказчиков. Но я пока что — пас в этих вопросах. Может быть, пока. Время покажет ))
Да я тоже пока не буду, других дел много. В частности, хочется вплотную заняться анализом блогов. После курса Александра Бобрина почему-то появилось такое желание тоже научиться делать все, как положено. А то я обычно внимание только на контент и обращала, потом начинала голову ломать, почему-то же сайт буксует.
Страницу в закладки и с утра буду применять на тестовом блоге.Должно получится.
Пробуйте. На тестовом, должно получиться. )
Здравствуйте.
Есть один вопросик. Как сделать так, чтобы шорткоды прописывались в админке чтобы не лезть в файл functions?
Заранее спасибо
Можно сделать так, но вряд ли я напишу об этом в ближайшее время. У меня не так много шорткодов, чтобы сейчас это делать.
Игорь, большое спасибо за такую подробную статью! Оказывается, это совсем не сложно, а я так долго откладывал момент когда разберусь с шорткодами, только по той причине, что думал для этого понадобится уйма времени))
Так, как я использую, совсем несложно. ))
Игорь, спасибо за статью, прогуглила=)... Такой вопрос: у вас в подписи какой выводится плеер? Или не плеер?.. И, если не секрет, какой прописать код плеера в шорткоде? P.S. Я с html не очень=)
Елена, я на этой неделю пост — ответ на ваш вопрос напишу и покажу, как выводить плеер в подписи. Двумя словами не получится объяснить.
А как вывести текст на английском языке, так, чтобы я мог потом локализовать плагин или шаблон? Например такую конструкцию:
Скрипт не получается вывести. Показывает ошибку. Скрипт вот такой: