Всем привет! Сегодня на seo-mayak.com я еще раз коснусь темы использования функций shortcode WordPress.
Что такое shortcode? Шорткоды — это набор простейших функций, создающих микро-коды, которые можно использовать в стандартном редакторе WordPress, в виджетах и также в файлах шаблона, для различных целей.
Вот как раз о целях использования шорткодов мы сегодня и поговорим.
Не так давно, в своей статье — заработок на контекстной рекламе, я показал пример использования шорткодов для вставки рекламных объявлений Яндекс Директ и Google AdSense, но это далеко не все их возможности.
Многие веб-мастера вообще не знают о существовании коротких кодов, так как в WordPress эта функция появилась только с выходом версии 2.5, что сравнительно недавно. Безусловно shortcode очень удобны и они значительно облегчают жизнь блогерам.
Чуть позже мы разберемся в каких ситуациях можно применять короткие коды, но сначала давайте попробуем написать самую простейшую функцию. Поехали!
Самый простой пример использования shortcode
Наверное проще такой функции shortcode и придумать нельзя и вставляется она в файл functions.php в самый конец перед знаком «?>»:
function mayak_easy() { return'Здравствуйте дорогие читатели блога seo-mayak.com'; } add_shortcode('hi', 'mayak_easy');
Начиная писать очередной пост, каждый веб-мастер приветствует своих читателей и это правильно, но можно не писать каждый раз одно и тоже, а воспользоваться шорткодом, заданным в вышеупомянутой функции.
Для этого в визуальном режиме редактора WordPress достаточно прописать:
[hi]
И при просмотре записи текст, заключенный в функцию, отобразиться автоматически. Можете проверить.
Теперь немного усложним задачу и сделаем домен ссылкой:
function mayak_easy() { return 'Здравствуйте дорогие читатели блога <a href="">seo-mayak.com</a>'; } add_shortcode('hi', 'mayak_easy');
Как с помощью shortcode предложить подписаться на rss
Я в своих статьях довольно часто предлагаю посетителям подписаться на обновления блога и делаю я это с помощью такой простенькой функции:
function mayak_rss() { return '<a href="http://feeds.feedburner.com/fb/a/mailverify?uri=seo-mayakcom&loc=ru_RU" rel="nofollow">Подпишись на обновления блога!</a>'; } add_shortcode('rs', 'mayak_rss');
В редакторе WordPress в нужное место вставляем:
[rs]
Конечно в функции надо заменить URL подписки на свой.
Добавление атрибута nofollow к ссылкам в тексте
Очень удобный шорткод, добавляющий к внешней ссылке атрибут nofollow. Очень часто бывает, когда в статье необходимо сослаться на какой-нибудь внешний ресурс и чтобы закрыть ссылку nofollow надо переключить редактор в режим HTML, а потом еще найти в тексте саму ссылку, на что уходит драгоценное время.
С помощью функции shortcode можно сделать это гораздо быстрее, без переключение режимов.
В файл functions.php вставляем следующее:
function mayak_nofollow($attr, $content= null){ $link = explode("href", $content); return $link[0].' rel="nofollow" href'.$link[1]; } add_shortcode('nw', 'mayak_nofollow');
Затем, прямо в визуальном редакторе, оборачиваем ссылку в теги:
[nw]Внешняя ссылка[/nw]
Название тегам можно дать любое, но его надо обязательно прописать в последней строчке функции. Я думаю Вы уже догадались в каком месте? Если нет, то задавайте вопросы в комментариях.
Я специально не стал придумывать тегам длинные названия, их так будет проще прописывать. Но на самом деле это тоже не важно, так как для добавления shortcode я использую кнопки в редакторе WordPress.
Откуда я их взял? Сам сделал! Я и Вас научу! Так что подписывайтесь на обновления блога, чтобы не пропустить интересный материал.
Шорткоды с использованием стилей
Например нам надо подсветить цветным фоном определенный участок текста. В файл functions.php вставляем следующую функцию:
function mayak_background($attr,$content= null){ return' <style type="text/css"> .yellow_background{ border: 1px solid #d2d2d2; background-color: #FFFF80; padding:10px; margin: 5px 10px; } </style> <div class="yellow_background">'.$content.'</div> '; } add_shortcode('yw', 'mayak_background');
Заключаем участок текста в теги:
[yw]Участок текста[/yw]
В результате мы получим участок текста на желтом фоне. Цвет фона можно поменять на любой другой, задав иное значение селектору:
background-color:#xxxxxx;
По желанию можно убрать стили из функции и прописать их в файле style.css.
Google очень часто выбирает в качестве сниппета для поиска именно тот текст, который подсвечен цветным фоном, если конечно в нем прописаны ключевые слова. Так что данный шорткод не только удобный, но и очень полезный.
Ретвит с помощью shortcode
Очень интересная и опять же полезная функция, которая выводит кнопку «Твитнуть»:
function mayak_twitt() { return ' <style type="text/css"> button{ background: #2E8CE3; padding: 7px 30px; font-size: 13px; font-weight: bold; color: #FFFFFF; text-align: center; border: solid 1px #73C8F0; cursor: pointer; border-radius: 5px; -moz-border-radius: 5px; -webkit-border-radius: 5px; background: -moz-linear-gradient(0% 100% 90deg, #2E8CE3, #fff); background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#fff), to(#2E8CE3)); box-shadow: inset 0 1px 0 0 #FFFFFF; -moz-box-shadow: 0 1px 3px rgba(0,0,0,0.5); -webkit-box-shadow: 0 1px 3px rgba(0,0,0,0.5); border-bottom: 1px solid rgba(0,0,0,0.25); text-shadow: 0 -1px 1px rgba(0,0,0,0.25); } button:hover { background: #2E69E3; background: -moz-linear-gradient(0% 100% 90deg, #2E69E3, #59C2FF); background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#59C2FF), to(#2E69E3)); } button:active { background: #2E69E3; background: -moz-linear-gradient(0% 100% 90deg, #2E69E3, #59C2FF); background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#59C2FF), to(#2E69E3)); box-shadow: inset 1px 1px 0 0 #004A7F; -moz-box-shadow: inset 1px 1px 0 0 #004A7F; -webkit-box-shadow: inset 1px 1px 0 0 #004A7F; padding: 8px 29px 6px 31px; } </style> <button><a title="Кликни и отправь этот пост в Твиттер!" href="http://twitter.com/home?status=В данный момент я читаю '.get_permalink($post->ID).'">Твитнуть</a></button>'; } add_shortcode('tt', 'mayak_twitt')
В нужном месте статьи вставляем:
[tt]
И пользователям явиться вот такая симпатичная кнопочка:
Можете попробовать твитнуть и посмотреть как она работает 🙂
Я сейчас не буду разбирать стили, если будут вопросы, задавайте их пожалуйста в комментариях.
Вывод категорий с помощью shortcode
Для выводы списка категорий, в WordPress отвечает специальный тег
<?php wp_list_categories();?>
Но можно вызвать категории простеньким шорткодом. Для этого в файле functions.php пишем такую функцию:
function mayak_category($atts, $content = null) { extract(shortcode_atts(array( 'name' => null, ),$atts)); return wp_nav_menu(array('menu' => $name,'echo' => false)); } add_shortcode('cat', 'mayak_category');
В редакторе пишем:
[cat]
Но если Вы захотите вставить данный короткий код в виджет, то придется применить уже иной подход.
Как вставлять shortcode в виджеты WordPress
По умолчанию WordPress не разрешает использовать шорткоды в виджетах, но этот запрет можно обойти с помощью фильтра, который надо добавить в тот же файл functions.php:
add_filter('widget_text', 'do_shortcode');
Таким образом мы заставили CMS WordPress исполнять короткий код в виджетах.
Выполнение шорткода в комментариях
Здесь мы просто применим другой фильтр:
add_filter( 'comment_text', 'do_shortcode' );
Все просто!
Но что делать если есть необходимость применить короткий код в файле шаблона, например для вставки контекстной рекламы?
Как вставить шорткод в файл шаблона
Для вставки шорткода в файл php придется квадратные скобки и их содержимое поместить в специальный php-контейнер:
<?php echo do_shortcode('[Короткий код]');?>
Как видите shortcode WordPress обладают широкими возможностями и на полную веб-мастера их еще не используют, а зря.
Как правильно вставлять видео с YouTube
В заключение я хочу рассказать вот о чем. Еще пару месяцев назад я использовал шорткод для вставки видео с YouTube и даже планировал им с Вами поделиться, но в ходе изучения материала я понял, что необходимость в этом уже отпала. Почему?
Просто с выходом версии 2.9 в WordPress появилась возможность вставлять видео в пост с помощью обычной ссылки. Например:
http://www.youtube.com/watch?v=scD8z_PVRTEYUTE
Ссылку надо скопировать в визуальный редактор и сделать ее не кликабельной. Удобно, но есть один минус. Нельзя изменить размер видео.
С выходом WordPress 3.5 разработчики движка исправили данный недочет. Каким образом? С помощью уже знакомого нам shortcode.
Теперь для вставки видео в пост надо в визуальном режиме прописать следующее:
[ embed width="640" height="360"]Ссылка на видео с YouTube[ /embed]
Я специально поставил пробелы, так как код целиком не отображался и их после копировании надо убрать, так что имейте это в виду!
Но можно сделать нашу жизнь еще проще. Как я уже говорил, в следующей статье Вас ждет интересный урок от том, как добавить свои кнопки в стандартный редактор WordPress.
На сегодня у меня все. Как Вам статья?
С уважением, Виталий Кириллов
Очень интересно, спасибо. Многого я не знала вообще, так действительно сокращается время. Отдельное спасибо за то, как можно вставить видео с ютуба с помощью шорткода. Очень любопытно будет узнать о кнопках в вордпрессе, буду ждать следующую статью))
Елена, я надеюсь Вы не разочаруетесь!
Очень полезная статья!) Надо кое-что на заметку взять). Я вот только видео из «Ютюба» по-другому вставляю, все проще гораздо.
Саша, ну Вы бы поделились с читателями, каким методом Вы пользуетесь!
)Нажимаю на видео правой кнопкой мыши, выбираю «копировать html-код», потом перехожу в редакторе Вордпресс в режим «Текст» и вставляю скопированное. Дальше можно вернуться в обычный режим и продолжать оформление поста.
Саша, ну и чем отличается Ваш метод от предложенного мной?
Я не заморачиваюсь по поводу размеров, все и так нормально отображается,автоматически выравнивается.
Приветствую, Виталий! Пока что все попытки сделать шорткод (на локальном, естественно!) заканчиваются тем, что блог просто перестает работать.
Вполне вероятно, что запись вставляю «не туда». Что означает, «вставить в самый конец файла functions.php перед знаком «?>»? В моем functions.php этот знак встречается несколько раз. Последний знак файла «<?php }".
Пробую, конечно, вставить что-то "методом тыка". Но или не происходит ничего. Или ломается файл. Хорошо, что восстановить его на локальном сервере — секундное дело (как и сохранить до "эксперимента". Перетащил на рабочий стол — скопировал (но у меня денвер на флешке). Перетащил обратно — заменил на первоначальный.
Хотелось бы почитать, как вообще устроен файл functions. Каковы его основные блоки. Что означает тот или иной знак.
Александр все функции в файле functions.php должны располагаться между знаками «< ?php" и "?>«. Можно даже одиночную функцию заключить в эти знаки. Попробуйте!
То есть — после последнего «»? Пробовал, не работает. Впрочем, сейчас мелькнуло — а если, как в моем файле function в конце поставить «<?php}"? Надо попробовать.
Спасибо, Виталий! Очень полезная статья. Часто вставляю шоткоды, пользуясь плагинами. Но сама никогда их не использовала. Оказывается, это элементарно. Даже странно, почему я это раньше не делала. Вот теперь думаю, стоил ли убрать файлы-шаблоны и перенести все в шоткоды. Как Вы думаете, это целесообразно?
Наталья я думаю смысл есть, тем более, что можно сделать кнопочки в редакторе, при нажатии на которые в текст будут всталятся нужные шорткоды, что сэкономит массу времени.
>>можно сделать кнопочки в редакторе
да-да, хорошая идея, а то всегда при добавлении новой записи приходится открывать старую, чтобы оттуда копировать теги с нужными стилями.
Надо будет заняться этим… может и Вы поспеете со статьей на эту тему)
Наталья статья уже готовиться.
Cупер! Все получилось, теперь буду разбираться насчет закрытия внешних ссылок в статьях.
А на другой сайт, когда вставляла шорткод — сайт поломался.
Шаблоны бывают разные, с некоторыми приходиться мучиться.
Здравствуйте, Виталий
Вы пишите: «Многие веб-мастера вообще не знают о существовании коротких кодов, так как в WordPress эта функция появилась только с выходом версии 2.5, что сравнительно недавно».
В связи с этим админ сайта http:// wppost.ru/author/admin/ Андрей Plechev прокомментировал это так:
«Версия 2.5 вышла в 2008 году http:// wordpress.org/news/2008/10/usability-testing-report-25-and-crazyhorse/ Как можно говорить о том что она вышла недавно, выдавая статью об ее упоминании в 2013? Только человек вообще не разбирающийся в этом мог такое сказать. Это обычный плагиат, который один инфобизнесмен переписывает у другого, привлекая профанов на свой сайт. Вот и все.»
Сам же Андрей считает абсолютно ненужным давать на своём сайте инструкции по пользованию шорткодами, хотя их у него на сайте — огромное количество.
Андрей тех, кто не разбирается в шорткодах — в открытую называет профанами и заявляет, что с такими профанами ему вообще не о чем разговаривать.
Виталий, что вы можете ответить по этому поводу?
Можно ли назвать поведение Андрея спесивостью или он прав?
Лео, я стараюсь не обращать внимания на всякие высказывания в мою сторону или в сторону моих проектов. По крайней мере, если ведется обсуждение статей, то значит они этого заслуживают.
Просто некоторые хотят быстро сделать себе имя в сети, поливая грязью других. Это легкий способ заявить о себе, но такой путь не продуктивен.
По-поводу статьи, Яндекс был основан в 1997 году и это было 16 лет назад. Версия wordpress 2.5 вышла 5 лет назад, что сравнительно недавно.
Я думаю больше пояснять ничего не надо.
Виталий, спасибо за ответ. Ну да — вы же не писали что в WordPress функция шорткодов появилась недавно (а 5 лет назад — это не недавно), а писали — появилась сравнительно недавно. То есть — смотря с чем сравнивать. Если до этого вы писали об использования шорткодов в Яндексе, то понятно, что в сравнении с Яндексом, где шорткоды используются уже давно, на в WordPress функция шорткодов появились сравнительно недавно.
ну конечно, если сравнивать с возрастом ваших тел, то это действительно произошло совсем недавно)))
Помогите разобраться!
Вот код с nofolow
function mayak_nofollow($attr, $content= null){
$link = explode(«href», $content);
return $link[0].’ rel=»nofollow» href’.$link[1];
}
add_shortcode(‘nw’, ‘mayak_nofollow’);
что это за параметр $attr передается в функцию?
что это за $content=null выступает в качетве строки для разбиения в експлоде?
Пытаюсь разобраться в функционале, ничего не выходит( Подскажите пожалуйста, и опишите, если не трудно, как происходит построчное выполнение кода. Спасибо!
Здравствуйте Женя! Извините за задержку с ответом были причины.
$attr — это шорткод-атрибут и на этом примере атрибутом будет href, содержащий ссылку.
$content — это содержание шорткода.
Спасибо) давно искал решение этой проблемы, поскольку использовал устаревший код)
Спасибо
Добрый день. А не подказали бы, как вставить с помощью шорткода видео с ютюба. Вставляю в файл functions.php вот такой код который ниже, все работает, только когда при открытии нового поста с видео мелькает белый экран, спасибо за помощь, может что-то добавить надо или не туда вставляю:
/* Youtube link shortcode */
function my_shortcode ()
function youtube_link_shortcode( $atts, $content = null ) {
return «»;
}
add_shortcode(‘youtube_link’, ‘youtube_link_shortcode’);
/* Youtube link shortcode end */
В статье я описал способ вставки видео с ютуба и использовать подобные функции нет никакой необходимости.
Добрый вечер. У меня как раз такая необходимость. Видео загружались в [youtube]AE4d_oEaCaI[/youtube] просто вставлял кусочек код с ютюба. Поменял шаблон и вышеописанный код работает, но при открытий страницы появляется белый экран, подскажите пожалуйста как исправить. Спасибо.
Wasija, с выходом версии 2.9 в WordPress появилась возможность вставлять видео в пост с помощью обычной ссылки. Например:
Попробуйте. Только ссылку надо сделать простым текстом.
Здравствуйте!
Извините, не по теме, скажите у меня в папке шаблона имеется папка lib, в ней имеется папка shortcodes в ней папка css а уж в ней сам файл — bootstrap.css. «Беда» в чем, при проверке сайта на валидность CSS — 340 ошибок!!! Экспериментом, удалила файл с сервера — bootstrap.css, проверила — 8 ошибок! Самое главное и с ним и без него сайт работает.
Сам вопрос! Скажите почему такое может быть и, что Вы бы посоветовали, как поступить? Спасибо!
Екатерина, шаблоны все разные и советовать, не видя картины целиком, мне сложно. Но! Если сайт работает, то значит данные стили не действуют. Советую сделать копию удаленного файла и сохранить ее на компьютере. В общем 100 раз проверьте все ли работает как надо без удаленного файла.
Приветствую. Пытаюсь настроить на сайте микроразмету http :// schema.org/Recipe. Для добавления атрибута itemprop=»resultPhoto» в тег img по аналогии с вашим кодом для добавления атрибута nofollow в ссылку сделал такой код:
function shemaorg_resultphoto($attr,$content= null){
$img = explode(«alt», $content);
return $img[0].’ itemprop=»resultPhoto» alt’.$img[1];
}
add_shortcode(‘result’, ‘shemaorg_resultshoto’);
Но к сожалению после обрамления [result][/result] шорткод не работает. Подскажите пожалуйста в что может быть не так? Сайт на WordPress.
Дмитрий к сожалению сходу не могу подсказать Вам правильное решение, надо провести несколько экспериментов.
День добрый ! Очень полезная статья! Спасибо. Создал свой первый шорткод!
function agenstvo_page($attr,$content= null){
return’
‘.$content.’
‘;
}
add_shortcode(‘page’, ‘agenstvo_page’);
?>
Но . Когда в контенте просто текст все нормально,стили работают. Но если ,внутрь ставлю шорткод, к примеру Contakt form 7 . Не работает шорткод, который внутри страницы. А стили срабатывают. Подскажите пожалуйста. Т.е. созданным своим щорткодом я не могу «обернуть» другой шорткод.
Здравствуйте Юрий.
Обернуть шорткодом другой шорткод не получится!
Подскажите пожалуйста, как шорткоде «подсветка цветным фоном участка текста» правильно убрать стили из функции и прописать их в файле style.css? У меня почему-то не получилось, очень хочу убрать из функции, не могу, когда что-то не на своем месте:))
Просто пропишите класс в функции шорткода, а для этого класса пропишите стили в файле style.css.
Пример:
День добрый! Подскажите как в примере шорткода вывода категорий, выводить определенные категории с подкатегориями. Если возможно «разжевать» используемые аргументы. К примеру шорткод background разжеван хорош и создавал осознанно.Спасибо за сайт.
Вечер добрый ! Еще возник один вопрос. Приведенный пример вывод категорий ,использует меню. А как в функции задать другое меню созданное в админке сайта?
Вечер добрый! С меню разобрался Спасибо! Но вот как с рубриками (категориями) :(((
Юрий, к сожалению сейчас совсем нет времени, чтобы заняться Вашим вопросом. Отвечу немного позже.
Здравствуйте Виталий,
как Вы думаете, насколько целесообразно использование шорткодов с точки зрения СЕО?
Например, я с помощью шорткодов отображаю контент с информацией технического характера, который зачастую частично или полностью дублируется.
По моим наблюдениям , поисковый робот видит сканирует весь контент выводимый шорткодом.
Я полагаю что ПС отмечает этот фактор как дублирование контента на страницах.
Что Вы можете посоветовать при работе с шорткодами как СЕО-специалист?
Вполне возможно Роман, что в Вашем случаи происходит дублирование. Здесь важно понимать одно: — если в исходном коде страницы дублированный текст присутствует, то робот его видит и если похожий текст есть на других URL, то хорошего в этом мало.
Виталий, я так понимаю, после обновления вордпресса шорткоды необходимо будет заливать опять?
Владимир, при обновлении движка, файлы шаблона остаются неизменны.
Так надо прописывать в файле functions.php шаблона, не движка?
Конечно!!! Файлы движка вообще трогать не желательно.
Здравствуйте Виталий, я не могу сообразить что нужно добавить в function и какой шорткод нужен? Не знаю поймете меня или нет, но я хочу сделать, чтоб при скачивании файлов с сайта — ссылке добавлялся код, а то каждой ссылке нужно его добавлять, а у меня их не 10 и не 20.
Вообщем есть ссылка вида : site.ru/soft/win-rar.exe а мне нужно сделать чтобы было при наведении мышкой такая же а при скачивании — скачивался загрузчик…
Надеюсь Вы меня поняли.
Спасибо.
Здравствуйте Евгений!
Если Я вас правильно понял, то вы хотите, чтобы при клике на ссылку скачивался определенный архив. В таком случаи при архивации выберите расширение .zip.
Не совсем так Виталий, вот пример: ранее у меня был другой шаблон (тема) для wordpress, — в нем была возможность редактирования файла attachment.php ,- я в нем всё правильно настроил вот так:
<h3><a href="<?php echo wp_get_attachment_url(); ?>" download_url="<?php echo wp_get_attachment_url(); ?>" class="mi-download-link" download_sid="81"><?php echo basename(wp_get_attachment_url()); ?></a></h3>
И у меня при скачивании файлов со страницы «вложения» дописывался код к ссылке…
А сейчас в новой теме файла attachment.php — нет почему-то… И у меня возник вопрос: как теперь это исправить?
Может как нибудь кнопку для скачивания вывести и к ней уже «прикрутить» этот код? Не знаю… Помогите пожалуйста. Тема «HappenStance»
Евгений, если файла attachment.php нет в теме, то его просто напросто надо создать!
Но на всякий случай проверьте наличие других файлов приложений.
Дело в том что WordPress соблюдает следующую иерархию файлов:
1. image.php, video.php, audio.php;
2. application.php;
3. attachment.php
4. index.php.
Разбираться в каждой теме по просьбе читателей я физически не смогу, правда делаю это платно, но далеко не во всех случаях, надеюсь вы понимаете.
Виталий, создать то я смогу, но ведь его ещё и подключать надо к «single.php» и наверное к «page.php»…
Или не надо?
Евгений, WordPress ищет файлы в соответствии с иерархией, вот почитайте статью, возможно Вам станет немного понятней, что такое иерархия файлов.
Здравствуйте, у меня такой вопрос, извините, немного не по теме. У меня на сайте неразбериха с записями по рубрикам. Я хочу переместить некоторое количество записей в другие рубрики, навести порядок. Это повлияет на поисковую выдачу? У меня рубрики закрыты от индексации. Канонические URL без вложений.
sitename/post/
И еще вопрос. Хочу убрать плагин WP-Noref, который закрывает линки комментаторов в . Из -за этого тега не получается частично микроразметка.
Т.е останется только rel=»nofollow». А как быть тогда с Яндексом? Будет ли он тогда индексировать ссылки с комментов и со статей?
Здравствуйте Егор! С такой структурой ЧПУ вы можете перекидывать записи из рубрики в рубрику без проблем.
На счет второго вопроса могу сказать следующее. Ссылки с nofollow будут индексироваться и Яндексом и Гуглом, может есть смысл закрыть ссылки в скрипт.
Здравствуйте! Пытаюсь использовать шорткод в виджете, и столкнулась с такой проблемой: код функции вставляется не в виджет, а выше его. Почему так происходит ума не приложу. Помогите пожалуйста! Код из functions.php:
function kulinar_last_posts(){
echo ««;
wp_get_archives(‘type=postbypost&limit=5’);
echo ««;
}
add_shortcode(‘mylastposts’, ‘kulinar_last_posts’);
add_filter(‘widget_text’, ‘do_shortcode’);
Здравствуйте,
А можно как нибудь заключить в шорткоды следующие теги:
Текст
Теги* <li itemprop="ingredients">Текст</li>
Игорь, у меня есть специальная функция, которая автоматически прописывает данный элемент микроразметки в теги li.
Здравствуйте, Виталий, я знаю и его использую. Но мне охота ещенекоторые элементы заключить в тег а они не относятся к ингредиентам ((
Немного не пойму Вашу затею, но могу посоветовать Вам следующие. Для данных элементов, вместо шорткода (возможность применения которого я не вижу) вручную прописывать ingredients в HTML режиме редактора.
Виталий, спасибо за статью!
У меня вопрос. Имеется иерархия:
категория А
-подкатегория А1
-подкатегория А2
категория Б
-подкатегория Б1
-подкатегория Б2
1) Есть ли какой-то шорт код выводящий подкатегории на странице вышестоящей в иерархии категории?
2) И можно но ли как-то усовершенствовать ваш шорткод с выводом категорий? По умолчанию он выводит пункты верхнего меню(в шаблоне их 3)
Илья, я такого шорткода не знаю.
спасибо за:
Как вставить шорткод в файл шаблона
Здравствуйте.
Столкнулся с такой проблемой: при вставке в шордкод кода для размещения на странице тизеров, сайт падает, а если зайти через хостинг в файл функций, там указана причина — ошибка синтаксиса. Это как-то можно победить?
Шорткоды с рекламой адсенс и разноцветными блоками работают великолепно.
Здравствуйте Сергей! Ошибка синтаксиса означает, что в коде ошибка, а php не прощает ошибок, поэтому и сайт рушится.
Вот я и не пойму, где может закрасться ошибка. Вставляю в файл функций
function mayak_easy() {
return’Сюда вставляю код взятый из настроек блока тизеров directadvert’;
}
add_shortcode(‘hi’, ‘mayak_easy’);
И сайт упал. Нотпад ++ ошибок не видит.
Вот и думаю, код тизеров с шорткодами вообще дружит?
Сергей, а как сам код тизеров выглядит?
Сюда его можно выложить?
Вот он
(function(e){var t=»DIV_DA_»+e+»_»+parseInt(Math.random()*1e3); document.write(»); if(«undefined»===typeof loaded_blocks_directadvert){loaded_blocks_directadvert=[]; function n(){var e=loaded_blocks_directadvert.shift(); var t=e.adp_id; var r=e.div; var i=document.createElement(«script»); i.type=»text/javascript»; i.async=true; i.charset=»windows-1251″; i.src=»//code.directadvert.ru/show.cgi?async=1&adp=»+t+»&div=»+r+»&t=»+Math.random(); var s=document.getElementsByTagName(«head»)[0]||document.getElementsByTagName(«body»)[0]; s.appendChild(i); var o=setInterval(function(){if(document.getElementById(r).innerHTML&&loaded_blocks_directadvert.length){n(); clearInterval(o)}},50)} setTimeout(n)}loaded_blocks_directadvert.push({adp_id:e,div:t})})(262635)
Чтобы такой скрипт загнать в шорткод надо обладать знаниями в php (экранирование кавычек и т.д.) Даже мне будет сложно его адаптировать. Поэтому и ошибка синтаксиса.
Понятно, спасибо!
Подскажите чайнику1почему при выводе два шорткода с разным id в виджетах отображаеться одинаковая информация что в одно что в другом виджете?где ошибка?
пример шорткода:[teams league_id=4]и[teams league_id=5]
Я тк понимаю, что это шорткоды плагина. Плагины бывает глючат, здесь я ничего Вам не могу посоветовать.
Добрый день, в своем шаблоне нашел шорткоды
$positives = do_shortcode(wpautop(get_post_meta($postid, IT_META_POSITIVES, $single = true)));
$negatives = do_shortcode(wpautop(get_post_meta($postid, IT_META_NEGATIVES, $single = true)));
как вызвать данные из этих шорт кодов,
Это значения произвольных полей записи, где IT_META_POSITIVES и IT_META_NEGATIVES название произвольных полей.
а как вызвать содержание этих полей
Прошу прощения, подскажите пожалуйста, как написать шорткод, который будет выводить контент определенной страницы.
Например, [get_page id=»10″]
Здравствуйте,статья очень полезная, но возникает вопрос (возможно я что-то пропустил)
использование файла functions.php темы не совсем хорошее решение потому что при смене шаблона
потеряются все добавления значит их надо перед обновлением сохранить (если конечно эти добавки актуальны)
тема этой статьи думаю для многих полезна потому как все пользователи которые что либо добавляли(код) и теряли(код) после обновления темы.и наверное внешний файл(плагин) будет хорошим решением нашел вот такое решение буду тэстить… вот адрес на статью по этой теме
avovkdesign.com/function-php-chem-zamenit.html#h3_7
и конечно каждый решает что делать …Александр, здравствуйте. Вот честно, хочется вам выразить двойную благодарность, но момент ушел. Представляете, когда целый день искал что-то подобное, смог организовать несколько загогулин, да еще сделал кнопку «Назад», с которой уже не знал, как бороться и тут эта информация. А потом сайт вдруг перестал работать. Стал химичить с добавлением кнопки, чтобы сразу несколько данных выводилось и пошло-поехало. Пропала админка, проблемы с плагином-калькулятором. Одно радует, контент в сохранности, блог пока в локальном варианте, так что ошибки стали не критичными, хотя эйфория внезапно кончилась. Но на самом деле я вам очень благодарен за эту информацию. Может и не мне была адресована, но кстати. Спасибо!!!
Блин жеж, как же я вам благодарен. Часа три убил, пока нашел ваш блог. Просто огромное спасибище. Сделал кнопку «Назад» через шорткод. Методом тыка-пыка, но получилось. До этого была проблема: ссылка ломалась при переходе из html в визуальный режим. Причем это не было видно. Пока печатаю контент. Естественно одна статья на другую ссылается. Что-то из одной статьи в другую кочует, ну и не успеваешь заметить, как конструкция a data-link=»#» onclick=»history.back();return false;»> превращается просто в a data-link=»#» <img src="http… Задолбался каждый раз править.
забыл подписаться на оповещения по почте 🙂 Сорри.
Здравствуйте. А есть ли в Вордпресс возможность вывести результаты поиска по какой ниб фразе на страницу с помощь шорткода?
Не пробовал.
Роман, привет. Я думаю, что нет ничего невозможного. Шоткод это форма, которая возвращает значение. По сути, вы создаете функцию с каким-то названием, расписываете эту функцию, а оператор add_shortcode всего лишь выводит эту функцию по какому-то короткому слову. Другими словами, добавляя шоткод вы просто вставляете кусок кода, чтобы не вводить его каждый раз руками. Я например, организовал несколько шоткодов по аббревиатурам на своем сайте, чтобы каждый раз не проверять и не печатать их в ручном режиме. Например, в тексте я пишу [pue] а результат получаю ПУЭ. А ещё рекомендую почитать — вот адрес на статью по этой теме
avovkdesign.com/function-php-chem-zamenit.html#h3_7 и конечно каждый решает что делать …
Один раз я свой тестовый сайт убил на компе, слава Богу локально, второй раз уже на реальном сайте после неправильного шоткода (использовал запретный «var») благодаря этому решению у меня просто отключился плагин и ничего страшного не произошло. То есть, экспериментировать можно до потери пульса.
не сработал код по аббревиатуре. Там где «результат получаю ПУЭ». У меня на сайте это отображается как аббревиатура — текст выделенный другим цветом, при наведении мышки на который всплывает текст расшифровки (оператор abbr для html). И кстати по предыдущей статье, файлов типа functions.php можно добавлять целую кучу, каждый для своей цели.
Благодарю за ссылку. Я просто с Вордпресс столкнулся впервые — изучаю. До этого делал сайты на Джумле — Вордпресс в новинку) Думал может есть уже готовое решение по моей проблеме.
Я сам новичок, сказал, что понял из своей недолгой работы над сайтом. Не знаю, как в джумле, но в вордпрессе корневой файл functions.php лучше не трогать, восстанавливать тяжелее.
Спасибо! Помогли 🙂
Добрый день! Хочу запилить slider (примерно как здесь grounde.ru). С самим слайдером все понятно, можно вставить в виде шорткода куда угодно.
А как сделать, чтобы шорткод выполнялся в одном и том же месте страницы при наведении мышкой на ссылку, как на указанном выше сайте? Не могу додумать…
Здравствуйте! Сходу тоже не могу выдать Вам готовое решение
Грустно…
Здравствуйте Виталий!
Может быть Вы мне поможете разобраться с моей проблемой. Установлен плагин Yarpp, работает хорошо и выводит похожие статьи в конце текста. Но проблема такая, в конце каждого материала я ставлю скрипт партнерки и она всегда стоит выше похожих записей. Партнерки по бронированию отелей, поэтому они разные. Как можно сделать так, чтобы Yarpp всегда был после текста, а партнерка шла за ним следом. Понимаю, что наверное нужно каким то образом прописать функцию в functions.php и уже после ставить шорткод в статьях, но как это сделать никак не соображу. Подскажите пожалуйста, если не трудно.
Cпасибо! мне помогла ваша статья.
Я просто добавила rel=»nofollow» и всё заработало.
Здравствуйте!
А как вставить в шорткод страницу?
Вставляется текст. А надо содержимое страницы, вместо include
В админке не работает php. Надо вставить через шорткод
Здравствуйте!
Такими экспериментами не занимался и сходу ответить не могу.
Может кто знает?
Мне просто некогда копать
Если сами найдете решение, тоже поделитесь.
Добрый день, скажите пожалуйста, такой вопрос. Индексируется ли содержимое shortcode поисковыми системами. Например внутри shortcode есть текст с ссылкой, он будет индексироваться поисковыми системами? а ли нет)
Понимаю что ссылку можно закрыть от индексации, но интересует именно содержимое shortcode индексируется или нет?
Спасибо за ответ (заранее)
Здравствуйте!
Виктор, посмотрите исходный код (CTRL+U). Если искомые текст или ссылка там присутствуют, то ничего не должно препятствовать их индексации.
Очень быстро) спасибо. Ларчик просто открывался, вы все верно пишите, очевидное не всегда приходит в голову) Спасибо!
Здравствуйте! А есть ли возможность вводить в шорткод свою переменную. например есть шорткод
, который выводит посты, оформленные в соответствии с заданными стилями, в две колонки из рубрики с id=8. А если можно ли в качестве id вводить переменную $cats = get_the_category($thePostID);
Здравствуйте, Илья!
Думаю можно что-то придумать.
Экспериментируйте!
Добрый день, Виталий!
Помогите пжлст с шорткодом, который бы вставлял нужное мне значение из файла price.php
В этом файле указаны цены на товары в таком виде, он лежит в корне сайта
$price1=10;
$price2=11;
$price3=12;
и т.д.
Для вывода нужного значения на странице, после доработки function.php используется такой код php
Если выводить на PHP то пишу так
но нужно выводить с помощью шорткода
Попробовал добавить простой шорткод по вашей инструкции, и все работает!)
Добавляю шорткод в файл function:
function my_php_snippet_shortcode() {
return «It works!»;
}
add_shortcode(‘my_php_snippet’, ‘my_php_snippet_shortcode’ );
Пишу шорткод на в редакторе
[my_php_snippet]
Вижу что работает, выводится It works
Как мне научить функцию выбирать нужное мне значение из файла price.php, которое я укажу в шорткоде?