» » » 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="http://seo-mayak.com">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.

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

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

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

  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″]

    Ответить

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

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

Subscribe without commenting

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