» » » Shortcode (шорткоды) WordPress. Примеры использования
logotip

Shortcode (шорткоды) WordPress. Примеры использования

Всем привет! Сегодня на seo-mayak.com я еще раз коснусь темы использования функций shortcode WordPress.

Что такое shortcode? Шорткоды — это набор простейших функций, создающих микро-коды, которые можно использовать в стандартном редакторе WordPress, в виджетах и также в файлах шаблона, для различных целей.

Вот как раз о целях использования шорткодов мы сегодня и поговорим.

Не так давно, в своей статье — заработок на контекстной рекламе, я показал пример использования шорткодов для вставки рекламных объявлений Яндекс Директ и Google AdSense, но это далеко не все их возможности.

shortcode

Многие веб-мастера вообще не знают о существовании коротких кодов, так как в 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.

На сегодня у меня все. Как Вам статья?

С уважением, Виталий Кириллов

Комментарии: 101

  1. Елена:

    Очень интересно, спасибо. Многого я не знала вообще, так действительно сокращается время. Отдельное спасибо за то, как можно вставить видео с ютуба с помощью шорткода. Очень любопытно будет узнать о кнопках в вордпрессе, буду ждать следующую статью))

    Ответить
    • Виталий Кириллов:

      Елена, я надеюсь Вы не разочаруетесь!

      Ответить
  2. Sasha:

    Очень полезная статья!) Надо кое-что на заметку взять). Я вот только видео из «Ютюба» по-другому вставляю, все проще гораздо.

    Ответить
    • Виталий Кириллов:

      Саша, ну Вы бы поделились с читателями, каким методом Вы пользуетесь!

      Ответить
  3. Sasha:

    )Нажимаю на видео правой кнопкой мыши, выбираю «копировать html-код», потом перехожу в редакторе Вордпресс в режим «Текст» и вставляю скопированное. Дальше можно вернуться в обычный режим и продолжать оформление поста.

    Ответить
    • Виталий Кириллов:

      Саша, ну и чем отличается Ваш метод от предложенного мной?

      Ответить
  4. Sasha:

    Я не заморачиваюсь по поводу размеров, все и так нормально отображается,автоматически выравнивается.

    Ответить
  5. Александр:

    Приветствую, Виталий! Пока что все попытки сделать шорткод (на локальном, естественно!) заканчиваются тем, что блог просто перестает работать.
    Вполне вероятно, что запись вставляю «не туда». Что означает, «вставить в самый конец файла functions.php перед знаком «?>»? В моем functions.php этот знак встречается несколько раз. Последний знак файла «<?php }".
    Пробую, конечно, вставить что-то "методом тыка". Но или не происходит ничего. Или ломается файл. Хорошо, что восстановить его на локальном сервере — секундное дело (как и сохранить до "эксперимента". Перетащил на рабочий стол — скопировал (но у меня денвер на флешке). Перетащил обратно — заменил на первоначальный.
    Хотелось бы почитать, как вообще устроен файл functions. Каковы его основные блоки. Что означает тот или иной знак.

    Ответить
    • Виталий Кириллов:

      Александр все функции в файле functions.php должны располагаться между знаками «< ?php" и "?>«. Можно даже одиночную функцию заключить в эти знаки. Попробуйте!

      Ответить
      • Александр:

        То есть — после последнего «»? Пробовал, не работает. Впрочем, сейчас мелькнуло — а если, как в моем файле function в конце поставить «<?php}"? Надо попробовать.

        Ответить
  6. Наталья:

    Спасибо, Виталий! Очень полезная статья. Часто вставляю шоткоды, пользуясь плагинами. Но сама никогда их не использовала. Оказывается, это элементарно. Даже странно, почему я это раньше не делала. Вот теперь думаю, стоил ли убрать файлы-шаблоны и перенести все в шоткоды. Как Вы думаете, это целесообразно?

    Ответить
    • Виталий Кириллов:

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

      Ответить
      • Наталья:

        >>можно сделать кнопочки в редакторе
        да-да, хорошая идея, а то всегда при добавлении новой записи приходится открывать старую, чтобы оттуда копировать теги с нужными стилями.
        Надо будет заняться этим… может и Вы поспеете со статьей на эту тему)

        Ответить
        • Виталий Кириллов:

          Наталья статья уже готовиться.

          Ответить
  7. Анна:

    Cупер! Все получилось, теперь буду разбираться насчет закрытия внешних ссылок в статьях.

    Ответить
  8. Анна:

    А на другой сайт, когда вставляла шорткод — сайт поломался.

    Ответить
    • Виталий Кириллов:

      Шаблоны бывают разные, с некоторыми приходиться мучиться.

      Ответить
  9. Лео:

    Здравствуйте, Виталий
    Вы пишите: «Многие веб-мастера вообще не знают о существовании коротких кодов, так как в 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 функция шорткодов появились сравнительно недавно.

        Ответить
        • Виталий:

          ну конечно, если сравнивать с возрастом ваших тел, то это действительно произошло совсем недавно)))

          Ответить
  10. Женя:

    Помогите разобраться!
    Вот код с 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 — это содержание шорткода.

      Ответить
  11. Кеша Аксенов:

    Спасибо) давно искал решение этой проблемы, поскольку использовал устаревший код)
    Спасибо

    Ответить
  12. Wasija:

    Добрый день. А не подказали бы, как вставить с помощью шорткода видео с ютюба. Вставляю в файл 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 */

    Ответить
    • Виталий Кириллов:

      В статье я описал способ вставки видео с ютуба и использовать подобные функции нет никакой необходимости.

      Ответить
  13. Wasija:

    Добрый вечер. У меня как раз такая необходимость. Видео загружались в [youtube]AE4d_oEaCaI[/youtube] просто вставлял кусочек код с ютюба. Поменял шаблон и вышеописанный код работает, но при открытий страницы появляется белый экран, подскажите пожалуйста как исправить. Спасибо.

    Ответить
    • Виталий Кириллов:

      Wasija, с выходом версии 2.9 в WordPress появилась возможность вставлять видео в пост с помощью обычной ссылки. Например:

      http://www.youtube.com/watch?v=scD8z_PVRTEYUTE

      Попробуйте. Только ссылку надо сделать простым текстом.

      Ответить
  14. Екатерина:

    Здравствуйте!
    Извините, не по теме, скажите у меня в папке шаблона имеется папка lib, в ней имеется папка shortcodes в ней папка css а уж в ней сам файл — bootstrap.css. «Беда» в чем, при проверке сайта на валидность CSS — 340 ошибок!!! Экспериментом, удалила файл с сервера — bootstrap.css, проверила — 8 ошибок! Самое главное и с ним и без него сайт работает.
    Сам вопрос! Скажите почему такое может быть и, что Вы бы посоветовали, как поступить? Спасибо!

    Ответить
    • Виталий Кириллов:

      Екатерина, шаблоны все разные и советовать, не видя картины целиком, мне сложно. Но! Если сайт работает, то значит данные стили не действуют. Советую сделать копию удаленного файла и сохранить ее на компьютере. В общем 100 раз проверьте все ли работает как надо без удаленного файла.

      Ответить
  15. Дмитрий:

    Приветствую. Пытаюсь настроить на сайте микроразмету 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.

    Ответить
    • Виталий Кириллов:

      Дмитрий к сожалению сходу не могу подсказать Вам правильное решение, надо провести несколько экспериментов.

      Ответить
  16. Юрий:

    День добрый ! Очень полезная статья! Спасибо. Создал свой первый шорткод!
    function agenstvo_page($attr,$content= null){
    return’

    ‘.$content.’
    ‘;
    }
    add_shortcode(‘page’, ‘agenstvo_page’);

    ?>

    Но . Когда в контенте просто текст все нормально,стили работают. Но если ,внутрь ставлю шорткод, к примеру Contakt form 7 . Не работает шорткод, который внутри страницы. А стили срабатывают. Подскажите пожалуйста. Т.е. созданным своим щорткодом я не могу «обернуть» другой шорткод.

    Ответить
    • Виталий Кириллов:

      Здравствуйте Юрий.
      Обернуть шорткодом другой шорткод не получится!

      Ответить
  17. Александра:

    Подскажите пожалуйста, как шорткоде «подсветка цветным фоном участка текста» правильно убрать стили из функции и прописать их в файле style.css? У меня почему-то не получилось, очень хочу убрать из функции, не могу, когда что-то не на своем месте:))

    Ответить
    • Виталий Кириллов:

      Просто пропишите класс в функции шорткода, а для этого класса пропишите стили в файле style.css.
      Пример:

      function add_background($attr,$content = null){
      return '<div class="green_background">'.$content.'</div>';
      }
      add_shortcode('green', 'add_background');
      
      Ответить
  18. Юрий:

    День добрый! Подскажите как в примере шорткода вывода категорий, выводить определенные категории с подкатегориями. Если возможно «разжевать» используемые аргументы. К примеру шорткод background разжеван хорош и создавал осознанно.Спасибо за сайт.

    Ответить
  19. Юрий:

    Вечер добрый ! Еще возник один вопрос. Приведенный пример вывод категорий ,использует меню. А как в функции задать другое меню созданное в админке сайта?

    Ответить
  20. Юрий:

    Вечер добрый! С меню разобрался Спасибо! Но вот как с рубриками (категориями) :(((

    Ответить
    • Виталий Кириллов:

      Юрий, к сожалению сейчас совсем нет времени, чтобы заняться Вашим вопросом. Отвечу немного позже.

      Ответить
  21. Роман:

    Здравствуйте Виталий,

    как Вы думаете, насколько целесообразно использование шорткодов с точки зрения СЕО?

    Например, я с помощью шорткодов отображаю контент с информацией технического характера, который зачастую частично или полностью дублируется.
    По моим наблюдениям , поисковый робот видит сканирует весь контент выводимый шорткодом.
    Я полагаю что ПС отмечает этот фактор как дублирование контента на страницах.

    Что Вы можете посоветовать при работе с шорткодами как СЕО-специалист?

    Ответить
    • Виталий Кириллов:

      Вполне возможно Роман, что в Вашем случаи происходит дублирование. Здесь важно понимать одно: — если в исходном коде страницы дублированный текст присутствует, то робот его видит и если похожий текст есть на других URL, то хорошего в этом мало.

      Ответить
  22. Владимир:

    Виталий, я так понимаю, после обновления вордпресса шорткоды необходимо будет заливать опять?

    Ответить
    • Виталий Кириллов:

      Владимир, при обновлении движка, файлы шаблона остаются неизменны.

      Ответить
      • Владимир:

        Так надо прописывать в файле functions.php шаблона, не движка?

        Ответить
        • Виталий Кириллов:

          Конечно!!! Файлы движка вообще трогать не желательно.

          Ответить
  23. Евгений:

    Здравствуйте Виталий, я не могу сообразить что нужно добавить в 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 ищет файлы в соответствии с иерархией, вот почитайте статью, возможно Вам станет немного понятней, что такое иерархия файлов.

              Ответить
  24. Егор:

    Здравствуйте, у меня такой вопрос, извините, немного не по теме. У меня на сайте неразбериха с записями по рубрикам. Я хочу переместить некоторое количество записей в другие рубрики, навести порядок. Это повлияет на поисковую выдачу? У меня рубрики закрыты от индексации. Канонические URL без вложений. sitename/post/

    И еще вопрос. Хочу убрать плагин WP-Noref, который закрывает линки комментаторов в . Из -за этого тега не получается частично микроразметка.
    Т.е останется только rel=»nofollow». А как быть тогда с Яндексом? Будет ли он тогда индексировать ссылки с комментов и со статей?

    Ответить
    • Виталий Кириллов:

      Здравствуйте Егор! С такой структурой ЧПУ вы можете перекидывать записи из рубрики в рубрику без проблем.
      На счет второго вопроса могу сказать следующее. Ссылки с nofollow будут индексироваться и Яндексом и Гуглом, может есть смысл закрыть ссылки в скрипт.

      Ответить
  25. Яна Закирова:

    Здравствуйте! Пытаюсь использовать шорткод в виджете, и столкнулась с такой проблемой: код функции вставляется не в виджет, а выше его. Почему так происходит ума не приложу. Помогите пожалуйста! Код из 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’);

    Ответить
  26. Игорь:

    Здравствуйте,
    А можно как нибудь заключить в шорткоды следующие теги:
    Текст

    Ответить
  27. Игорь:

    Теги* <li itemprop="ingredients">Текст</li>

    Ответить
    • Виталий Кириллов:

      Игорь, у меня есть специальная функция, которая автоматически прописывает данный элемент микроразметки в теги li.

      Ответить
      • Игорь:

        Здравствуйте, Виталий, я знаю и его использую. Но мне охота ещенекоторые элементы заключить в тег а они не относятся к ингредиентам ((

        Ответить
        • Виталий Кириллов:

          Немного не пойму Вашу затею, но могу посоветовать Вам следующие. Для данных элементов, вместо шорткода (возможность применения которого я не вижу) вручную прописывать ingredients в HTML режиме редактора.

          Ответить
  28. Илья:

    Виталий, спасибо за статью!

    У меня вопрос. Имеется иерархия:

    категория А
    -подкатегория А1
    -подкатегория А2
    категория Б
    -подкатегория Б1
    -подкатегория Б2

    1) Есть ли какой-то шорт код выводящий подкатегории на странице вышестоящей в иерархии категории?
    2) И можно но ли как-то усовершенствовать ваш шорткод с выводом категорий? По умолчанию он выводит пункты верхнего меню(в шаблоне их 3)

    Ответить
    • Виталий Кириллов:

      Илья, я такого шорткода не знаю.

      Ответить
  29. Илья:

    спасибо за:

    Как вставить шорткод в файл шаблона

    Ответить
  30. Сергей:

    Здравствуйте.
    Столкнулся с такой проблемой: при вставке в шордкод кода для размещения на странице тизеров, сайт падает, а если зайти через хостинг в файл функций, там указана причина — ошибка синтаксиса. Это как-то можно победить?
    Шорткоды с рекламой адсенс и разноцветными блоками работают великолепно.

    Ответить
    • Виталий Кириллов:

      Здравствуйте Сергей! Ошибка синтаксиса означает, что в коде ошибка, а 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 (экранирование кавычек и т.д.) Даже мне будет сложно его адаптировать. Поэтому и ошибка синтаксиса.

                Ответить
                • Сергей:

                  Понятно, спасибо!

                  Ответить
  31. василий:

    Подскажите чайнику1почему при выводе два шорткода с разным id в виджетах отображаеться одинаковая информация что в одно что в другом виджете?где ошибка?
    пример шорткода:[teams league_id=4]и[teams league_id=5]

    Ответить
    • Виталий Кириллов:

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

      Ответить
  32. vel:

    Добрый день, в своем шаблоне нашел шорткоды
    $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 название произвольных полей.

      Ответить
  33. vel:

    а как вызвать содержание этих полей

    Ответить
  34. Артем:

    Прошу прощения, подскажите пожалуйста, как написать шорткод, который будет выводить контент определенной страницы.
    Например, [get_page id=»10″]

    Ответить
  35. Александр:

    Здравствуйте,статья очень полезная, но возникает вопрос (возможно я что-то пропустил)

    использование файла functions.php темы не совсем хорошее решение потому что при смене шаблона

    потеряются все добавления значит их надо перед обновлением сохранить (если конечно эти добавки актуальны)

    тема этой статьи думаю для многих полезна потому как все пользователи которые что либо добавляли(код) и теряли(код) после обновления темы.и наверное внешний файл(плагин) будет хорошим решением нашел вот такое решение буду тэстить… вот адрес на статью по этой теме
    avovkdesign.com/function-php-chem-zamenit.html#h3_7 и конечно каждый решает что делать …

    Ответить
    • Денис:

      Александр, здравствуйте. Вот честно, хочется вам выразить двойную благодарность, но момент ушел. Представляете, когда целый день искал что-то подобное, смог организовать несколько загогулин, да еще сделал кнопку «Назад», с которой уже не знал, как бороться и тут эта информация. А потом сайт вдруг перестал работать. Стал химичить с добавлением кнопки, чтобы сразу несколько данных выводилось и пошло-поехало. Пропала админка, проблемы с плагином-калькулятором. Одно радует, контент в сохранности, блог пока в локальном варианте, так что ошибки стали не критичными, хотя эйфория внезапно кончилась. Но на самом деле я вам очень благодарен за эту информацию. Может и не мне была адресована, но кстати. Спасибо!!!

      Ответить
  36. Денис:

    Блин жеж, как же я вам благодарен. Часа три убил, пока нашел ваш блог. Просто огромное спасибище. Сделал кнопку «Назад» через шорткод. Методом тыка-пыка, но получилось. До этого была проблема: ссылка ломалась при переходе из html в визуальный режим. Причем это не было видно. Пока печатаю контент. Естественно одна статья на другую ссылается. Что-то из одной статьи в другую кочует, ну и не успеваешь заметить, как конструкция a data-link=»#» onclick=»history.back();return false;»> превращается просто в a data-link=»#» <img src="http… Задолбался каждый раз править.

    Ответить
  37. Денис:

    забыл подписаться на оповещения по почте 🙂 Сорри.

    Ответить
  38. Роман:

    Здравствуйте. А есть ли в Вордпресс возможность вывести результаты поиска по какой ниб фразе на страницу с помощь шорткода?

    Ответить
    • Виталий Кириллов:

      Не пробовал.

      Ответить
    • Денис:

      Роман, привет. Я думаю, что нет ничего невозможного. Шоткод это форма, которая возвращает значение. По сути, вы создаете функцию с каким-то названием, расписываете эту функцию, а оператор add_shortcode всего лишь выводит эту функцию по какому-то короткому слову. Другими словами, добавляя шоткод вы просто вставляете кусок кода, чтобы не вводить его каждый раз руками. Я например, организовал несколько шоткодов по аббревиатурам на своем сайте, чтобы каждый раз не проверять и не печатать их в ручном режиме. Например, в тексте я пишу [pue] а результат получаю ПУЭ. А ещё рекомендую почитать — вот адрес на статью по этой теме
      avovkdesign.com/function-php-chem-zamenit.html#h3_7 и конечно каждый решает что делать …
      Один раз я свой тестовый сайт убил на компе, слава Богу локально, второй раз уже на реальном сайте после неправильного шоткода (использовал запретный «var») благодаря этому решению у меня просто отключился плагин и ничего страшного не произошло. То есть, экспериментировать можно до потери пульса.

      Ответить
      • Денис:

        не сработал код по аббревиатуре. Там где «результат получаю ПУЭ». У меня на сайте это отображается как аббревиатура — текст выделенный другим цветом, при наведении мышки на который всплывает текст расшифровки (оператор abbr для html). И кстати по предыдущей статье, файлов типа functions.php можно добавлять целую кучу, каждый для своей цели.

        Ответить
      • Роман:

        Благодарю за ссылку. Я просто с Вордпресс столкнулся впервые — изучаю. До этого делал сайты на Джумле — Вордпресс в новинку) Думал может есть уже готовое решение по моей проблеме.

        Ответить
        • Денис:

          Я сам новичок, сказал, что понял из своей недолгой работы над сайтом. Не знаю, как в джумле, но в вордпрессе корневой файл functions.php лучше не трогать, восстанавливать тяжелее.

          Ответить
  39. Оксана:

    Спасибо! Помогли 🙂

    Ответить
  40. Павел:

    Добрый день! Хочу запилить slider (примерно как здесь grounde.ru). С самим слайдером все понятно, можно вставить в виде шорткода куда угодно.
    А как сделать, чтобы шорткод выполнялся в одном и том же месте страницы при наведении мышкой на ссылку, как на указанном выше сайте? Не могу додумать…

    Ответить
    • Виталий Кириллов:

      Здравствуйте! Сходу тоже не могу выдать Вам готовое решение

      Ответить
      • Павел:

        Грустно…

        Ответить
  41. Юра:

    Здравствуйте Виталий!
    Может быть Вы мне поможете разобраться с моей проблемой. Установлен плагин Yarpp, работает хорошо и выводит похожие статьи в конце текста. Но проблема такая, в конце каждого материала я ставлю скрипт партнерки и она всегда стоит выше похожих записей. Партнерки по бронированию отелей, поэтому они разные. Как можно сделать так, чтобы Yarpp всегда был после текста, а партнерка шла за ним следом. Понимаю, что наверное нужно каким то образом прописать функцию в functions.php и уже после ставить шорткод в статьях, но как это сделать никак не соображу. Подскажите пожалуйста, если не трудно.

    Ответить
  42. Wildflame:

    Cпасибо! мне помогла ваша статья.
    Я просто добавила rel=»nofollow» и всё заработало.

    $social = '';
    Ответить
  43. Максим:

    Здравствуйте!
    А как вставить в шорткод страницу?

    function getProjects()
        {
            return 'Текст';
        }
        add_shortcode('getProjects', 'getProjects');

    Вставляется текст. А надо содержимое страницы, вместо include

    function getProjects()
        {
            return '/works_on_main.php';
        }
        add_shortcode('getProjects', 'getProjects');

    В админке не работает php. Надо вставить через шорткод

    Ответить
    • Виталий Кириллов:

      Здравствуйте!
      Такими экспериментами не занимался и сходу ответить не могу.
      Может кто знает?
      Мне просто некогда копать
      Если сами найдете решение, тоже поделитесь.

      Ответить
  44. Виктор:

    Добрый день, скажите пожалуйста, такой вопрос. Индексируется ли содержимое shortcode поисковыми системами. Например внутри shortcode есть текст с ссылкой, он будет индексироваться поисковыми системами? а ли нет)
    Понимаю что ссылку можно закрыть от индексации, но интересует именно содержимое shortcode индексируется или нет?

    Спасибо за ответ (заранее)

    Ответить
    • Виталий Кириллов:

      Здравствуйте!
      Виктор, посмотрите исходный код (CTRL+U). Если искомые текст или ссылка там присутствуют, то ничего не должно препятствовать их индексации.

      Ответить
      • Виктор:

        Очень быстро) спасибо. Ларчик просто открывался, вы все верно пишите, очевидное не всегда приходит в голову) Спасибо!

        Ответить
  45. Илья:

    Здравствуйте! А есть ли возможность вводить в шорткод свою переменную. например есть шорткод
    , который выводит посты, оформленные в соответствии с заданными стилями, в две колонки из рубрики с id=8. А если можно ли в качестве id вводить переменную $cats = get_the_category($thePostID);

    Ответить
    • Виталий Кириллов:

      Здравствуйте, Илья!
      Думаю можно что-то придумать.
      Экспериментируйте!

      Ответить
  46. Oleg:

    Добрый день, Виталий!
    Помогите пжлст с шорткодом, который бы вставлял нужное мне значение из файла 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, которое я укажу в шорткоде?

    Ответить

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

Внимание комментатор! Прежде чем вставить: HTML, JavaScript или PHP код в свой комментарий, преобразуй его в html сущность!

Subscribe without commenting

» Подписаться на комментарии по RSS