Как сделать, чтобы шорткод работал в любом месте шаблона WordPress?

Привет друг!

Недавно при разработке одного плагина для WP я столкнулся со такой вот проблемкой:

Нужно было заставить стандартный вордпрессовский Shortcode работать не только в записях или на страницах, но и в коде самого шаблона, т.е. в любом месте текущего шаблона. Чтобы можно просто вставить шорткод в один из файлов шаблона и не париться со всякими там PHP 🙂

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

Вот супер-краткое решение, которое нужно просто вставить в нужное месте в любом из файлов твоего шаблона:

<?php echo do_shortcode('[shortcode]'); ?>

Вместо варианта [shortcode] нужно конечно прописать свой шорткод.

Например, [square width="800" height="600"]

А вот еще решение, но более продвинутое. В данном случае шорткод берется из значения meta-поля к записи. В данном случае это поле gallery. А вот и сам код:

<?php

if (get_post_meta($post->ID, 'gallery', true)) {

$shortcode = get_post_meta($post->ID, 'gallery', true);

echo do_shortcode("$shortcode");

} else { echo ''; }

?>

[ Прочитайте комменты ниже или напишите свой... ]

Ищете хостинг для своего сайта? Могу порекомендовать свой (нажмите здесь)

104 комментария к “Как сделать, чтобы шорткод работал в любом месте шаблона WordPress?”

  1. Никита 16.10.2012 в 03:50 #

    Здравствуйте! У меня такая ситуация: нужно вставить шорткоды ниже поста в файле темы single.php. Точнее поместить шорткод формы cforms внутри шорткода jquery-collapse-o-matic. Я использовал следующий код:

    &lt;?php echo do_shortcode('[expand title=&quot;Кликните сюда для отображения содержимого&quot;]Скрытый контент&lt;!--cforms name=&quot;New1&quot;--&gt;[/expand]');?&gt;

    Плагин jquery-collapse-o-matic работает, а форма cforms нет(
    Сforms можно вставить с помощью функции <code></code>, но только не вместо <!--cforms name="New1"--></html>, т.к. тогда вообще ничего не будет работать. Помогите пожалуйста, как можно решить эту проблему?

  2. xppx 30.12.2012 в 03:51 #

    отличное решение, ваш метод помог

  3. Леха 23.04.2013 в 14:29 #

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

  4. Денис 22.05.2013 в 13:29 #

    Привет!

    Подскажи а как применить это к одной конкретной странице в виде кода.

    <?php echo do_shortcode('<strong>[shortcode]'); ?>

    что нужно тут добавить id 20.

    Спасибо за пост!

    • Богдан 24.05.2013 в 13:53 #

      Привет, Денис. А на какой странице ты хочешь этот код применить? И какой у тебя шорткод?

      Если можешь, расскажи немного подробнее и укажи ссылку. Я тогда смогу посмотреть и подсказать тебе точно.

      Пожалуйста !)

  5. Надя 16.07.2013 в 21:40 #

    Что делать если в теме вордпресс, которую я использую не работают плагины- шорткоды в редакторе записи. Они просто ни вставляются в запись. Плагины шорткодов перепробовала 5 штук..

    • Богдан 17.07.2013 в 19:17 #

      Здравствуйте Надя.

      Возможно, у вас какой-то измененный редактор или дополнительные условия для фильтрации текста, или просто попробуйте вставлять шорткоды в редактор через вкладку HTML, а не через вкладку Текст.

  6. Дмитрий 29.09.2013 в 20:28 #

    ПРивет)) Подскажите пожалуйста) Как сделать так что бы не вставлять вручную на каждую страницу шот код, а так что бы он уже был на всех страниц автоматом?

    Куда его именно в шаблоне темы нужно вставить?

    (Я пробовал в Функции темы (functions.php), но после вставки кода, сайт не работает(((((

    • Богдан 29.09.2013 в 20:42 #

      Привет! Ну смотри... Куда именно ты хочешь вставить шорткод?

      Например, если ты хочешь добавить какую-то информацию в конце каждого текста статьи или в начала каждого текста, то в таком случае можно использовать фильтр "the_content". А код будет примерно следующий:

       
      function gb_add_to_content( $content )
       
      {
       
      $before = '<p>ТЕКСТ ПЕРЕД СТАТЬЕЙ</p>';
       
      $after = '<p>ТЕКСТ ПОСЛЕ СТАТЬИ</p>';
       
      
       
      return $before . $content . $after;
       
      }
       
      add_filter('the_content','gb_add_to_content');
       
      // если нужно добавить текст к отрывку (анонсу) статьи, то используй следующую строку:
       
      // add_filter('the_excerpt','gb_add_to_content');
       
      

      Если еще остались вопросы, то пиши ниже, я постараюсь все разъяснить.

      Успехов!

      P.S. У тебя классный сайт, мне очень понравился. Хочу дать еще советик: установи плагин RusToLat, чтобы ссылки все были без русских символов. То есть чтобы ссылки состояли только из латинских букв, поисковики не любят мешанину в ссылках, они больше привыкли к транслиту. А этот плагин переведет имеющиеся ссылки в транслит и все добавляемые страницы будет также автоматически делать с транслит. ссылками.

      • Дмитрий 29.09.2013 в 20:53 #

        Спасибо)))

        Ну я имел ввиду ситуацию такую))

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

        Я его вставлял шот кодом, на странице, а как мне сделать так что бы

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

        Плагин называется jScrollPane Shortcode))

        • Богдан 30.09.2013 в 13:55 #

          Да, конечно.

          Надо зайти в админку - меню "Внешний вид" - "Редактор", справа найти файл "Функции темы (functions.php)" и туда после <code><?php</code> или перед <code>?></code> сразу вставить код, который ниже:

           
          function gb_wrap_jsp( $content ) 
          { 
           return do_shortcode('[vr_jsp width=&quot;100%&quot; height=&quot;500px&quot;]' . $content . '[/vr_jsp]'); 
          } 
          add_filter('the_content','gb_wrap_jsp'); 
          

          P.S. Параметры width и height, если необходимо, спокойно изменяй на те, которые необходимы тебе.

  7. Дмитрий 07.10.2013 в 00:30 #

    Добрый вечер))

    Ещё один вопрос интересует)))

    Есть какой плагин или как сделать что бы при входе на сайт была фоновая музыка))) но так что бы без плеера)

    • Богдан 07.10.2013 в 15:44 #

      Привет.

      Без плеера ты не сделаешь этого 🙂 Но можно вставить плеер с автовоспроизведением и скрыть его с помощью CSS.

      Попробуй поискать "wordpress background music", хотя я поискал немного и люди пишут, что воспроизведение фоновой музыки без подтверждения посетителя не очень хорошая практика.

  8. Николай 08.10.2013 в 22:24 #

    Богдан, добрый день. В вордпрессе новичок, и хотелось бы вас спросить как вставлять в шаблоне.php, внутри самогО шоткода, PHP-код? (прошу прощения за тавтологию)

    т.е. имеем:

    и нужно вместо контента, вставить, ну к примеру:

    я сам дизайнер, не программист, помогите, будьте добры))

    • Богдан 09.10.2013 в 10:01 #

      Здравствуйте, Николай.

      Ваш код к сожалению был вырезан WordPress-ом, пожалуйста, чтобы я смог вам как-то помочь, напишите ваш код еще раз, без оборачивания в <?php ... ?>. И по возможности оформите его как текст.

  9. Николай 09.10.2013 в 15:55 #

    и в правду, попытка номер два:
    имеем:

     
    &lt;?php 
     
    echo do_shortcode(' 
    [tabs style=&quot;2&quot;] 
        	[tab title=&quot;Заголовок 1&quot;] контент 1 [/tab]    
    	[tab title=&quot;Заголовок 2&quot;] контент2 [/tab]  
    [/tabs]  
    '); 
     
    ?&gt; 
    

    и нужно вместо контента, вставить, ну к примеру:

     
    &lt;?php do_action('single_spot_after_content_area', get_the_ID(), 'after_content_area'); ?&gt; 
    
    • Богдан 10.10.2013 в 10:08 #

      Если я верно понял, то, что вы хотите сделать... Попробуйте вот так:

       
      &lt;?php 
       
      echo do_shortcode(' 
      [tabs style=&quot;2&quot;] 
          	[tab title=&quot;Заголовок 1&quot;] ' . do_action('single_spot_after_content_area', get_the_ID(), 'after_content_area') . ' [/tab]    
      	[tab title=&quot;Заголовок 2&quot;] ' . do_action('single_spot_after_content_area', get_the_ID(), 'after_content_area') . ' [/tab]  
      [/tabs]  
      '); 
       
      ?&gt; 
      

      Это конечно немного замудренный код получается, но работать должен нормально. А то, что я сделал, это просто разделил строку кавычкой, затем поставил . точку (это соединение строк, конкатенация), затем написал вашу функцию, затем снова точка (объединение со строкой) и открывающая новую строку кавычка.

      Но в данном варианте, мне кажется, лучше взять и найти в коде функцию, которая обрабатывает шорткод <code>[tabs]</code> и передавать этой функции значение <code>do_action</code>, тогда WordPress-у не придется обрабатывать шорткод, а он будет напрямую запускать функцию, которую данный шорткод и представляет. Но это уже технические тонкости, и возможно, вам они не особо интересны 🙂

      Успехов!

      P.S. Я вам на почту напишу. Мне и моим клиентам помощь веб-дизайнера иногда нужна, и будет классно, если мы обменяемся контактами с вами.

  10. Дмитрий 10.10.2013 в 05:20 #

    Доброй ночи))

    Очень интересует вопрос как сделать, что бы у меня страницы на сайте с таким эффектом ластились как тут? blog.n1dev.ru/demo/page-transitions

    • Богдан 10.10.2013 в 10:31 #

      Привет!

      Тебе надо пройти по ссылке, которую ты указал в своем комментарии, и там в правом верхнем углу нажать на маленькую ссылку "Назад к уроку". Ты попадешь на страницу, где описана инструкция, как это сделать.

  11. Дмитрий 10.10.2013 в 12:08 #

    Это я видел)) Но я не понимаю как это сделать?) Куда какой код вставлять))

    Я коды распределяю но не чего не работает((((((

    • Богдан 11.10.2013 в 20:07 #

      Понятно 🙂 В таком случае, ответ на ваш вопрос не попадает в формат комментариев на блоге. Напишите мне по контактам со страницы "WP Помощь на этом блоге, возможно я смогу вам помочь, но нужно узнать у вас детали.

      • Дмитрий 25.10.2013 в 00:37 #

        Богдан, здравствуйте.

        Я Вам на почту отправил письмо с вопросом о стоимости Ваших услуг. Очень нужна Ваша помощь.

  12. Дмитрий 13.10.2013 в 17:03 #

    Я вам на почту написал))))

  13. Ксения 03.11.2013 в 06:25 #

    Здравствуйте! Подскажите, пожалуйста. В контент записей/страниц можно вставлять что-то типа шорткодов вида <!-- something -->. Как такое называется и можно ли работать с этой штукой вне контента записи (вроде как, можно обрабатывать его вордпрессовской функцией the_content)?

    • Богдан 03.11.2013 в 21:00 #

      Здравствуйте, Ксения. Не совсем понял вашу проблему, опишите пожалуйста, подробнее, что вы хотите сделать и что у вас не получается?

  14. Саша 09.11.2013 в 03:35 #

    никак не удается сделать так, чтобы шорткод заработал..

    сделала отдельный шаблон для страницы (в нее вставила сверстанную html-ку), то есть от вордпресса там только код вывода поста..

    и когда редактирую этот самый пост через wp, шорткод не срабатывает (мне нужен спойлер), и на странице сразу отображается и содержимое спойлера..

    если можете подсказать решение, буду очень благодарна

    • Богдан 09.11.2013 в 18:17 #

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

      &lt;?php wp_head(); ?&gt;

      Она примерно так выглядит, и через нее выводится код, которые подключает на страничке скрипты, которые в свою очередь дают возможность спойлеру сворачиваться и разворачиваться 🙂

      Поэтому либо вернуть эту функцию, либо добавить код, подключающий скрипт спойлера, вручную.

      Если что-то непонятно или не получается, пиши здесь, рад буду помочь.

  15. Никита Власов 26.11.2013 в 11:22 #

    Материал СУПЕР!!!!!! Спасибо, меня Вы здорово выручили!

  16. Фаррух 28.11.2013 в 22:22 #

    Приветствую! Такой вопрос:

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

    Желательно не так чтобы индивидуально и статично вбивался шорт через php, а просто как-то глобально разрешить что ли использование шорткодов, конечно за исключением пользовательских полей (комменты и пр.)

    В интернетах пока нашел только схожие с вашим советы по внедрению.

    Спасибо.

    • Богдан 30.11.2013 в 10:00 #

      Здравствуй, Фаррух. Уточни пожалуйста, где именно ты хочешь разрешить использование шорткодов?

      • Фаррух 30.11.2013 в 16:19 #

        Первое: хотел бы использовать в "Описании" поля, который существует или создается в "Полях профиля".

        Кстати, установлен BuddyPress.

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

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

        Это реально? 🙂

        • Богдан 01.12.2013 в 08:55 #

          Понятно. Я сначала не понял, о каких полях речь, но хорошо, что ты упомянул BuddyPress. Эти поля появились благодаря этому плагину 🙂

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

          add_filter( 'widget_text', 'do_shortcode' );
          

          Ее нужно просто добавить в файл темы functions.php (Функции темы).

          Что делает эта строчка: Она заставляет текст, написанный в поле текстового виджета, проходить через функцию do_shortcode, которая как раз приводит шорткод в действие.

          И я предполагаю, что можно тоже самое сделать и для "Описания поля", о котором ты пишешь, нужно только найти название фильтра в BuddyPress, который отвечает за это "Описание поля", аналогично названию фильтра widget_text, который это делает для текстового виджета.

          • Богдан 01.12.2013 в 09:03 #

            Например, вот для текста, который пользователи твоего сайта будут записывать в поля в своем профиле, можно исполнять шорткоды, для этого надо использовать тот же код, который я указал выше, только изменить widget_text на bp_get_the_profile_field_value. Получится вот так:

            add_filter('bp_get_the_profile_field_value', 'do_shortcode');
            

            P.S. Я эту строчку на работоспособность не проверял, но предполагаю, что должна работать.

  17. Фаррух 03.12.2013 в 18:58 #

    Да я читал про это, спасибо за напоминание) и кстати к этому возникает вопрос...если я правильно понял, он фильтрует текст на наличие любых шорткодов в указанном тексте или же я должен передать конкретный шорткод, как указанно выше?

    т.е. Сегодня я в описании "полей профиля" ставлю(через админку конечно) спойлер и вышеприведенная функция исполняет её, а завтра ставлю вкладки и фукнция исполняет его...

    или мне надо каждый раз править код под нужный мне ШК вручную?

    если править вручную, имеется ли в ВП (уже)готовая(встроенная) функция или класс при помощи которой я бы прогонял текст и передавал его на обсуждаемую нами код?

    • Богдан 04.12.2013 в 08:09 #

      Ну вот, например, вот эта строчка:

      add_filter( 'widget_text', 'do_shortcode' );
      

      Что она сделает: она просто позволит пользоваться любыми шорткодами в текстовых виджетах. То есть без этой строчки шорткоды, которые ты укажешь в текстовых виджетах, могут отображаться просто как текст, то есть не будут исполняться.

      Аналогично вот эта строчка:

      add_filter('bp_get_the_profile_field_value', 'do_shortcode');
      

      Что она сделает: она также позволит пользоваться любыми шорткодами, но уже в полях профиля пользователя.

      А вообще тебе наверно нужна эта функция:

      echo do_shortcode( '[shortcode]' ); // превратит [shortcode] в то, что он действительно должен показывать
      

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

      Богдан

  18. Фаррух 04.12.2013 в 20:02 #

    Богдан, Спасибо!

    то что я искал и спрашивал, но так и не попробовал это

    add_filter('bp_get_the_profile_field_value', 'do_shortcode');

    Это именно то чего я допытывался, и вправду добавление этой строчки один раз, позволяет применять шорткоды и менять их как "перчатки" по необходимости, конечно не глобально, но вполне устраивает, глобальность это можно сказать было отчаянием, ведь все равно везде ШК не нужны 🙂

    В моем случае это было описание поля

    bp_the_profile_field_description

    поэтому в начале я сделал так:

    add_filter('bp_the_profile_field_description', 'do_shortcode');

    не заработало, достаточно было добавить get_

    add_filter('bp_get_the_profile_field_description', 'do_shortcode');

    И вуаля, все работает, код который с echo лишний когда есть это.
    И теперь по дороге "Консоль" > "Пользователи" > "Поля профиля" > "Поле и его описание", какой бы ШК уже имеющийся в ВП или который будет загружен в будущем может быть легко вписан в "Описание поля" с ожиданием соответствующего результата!

    Вообщем!

    Большое спасибо!

    С уважением, Фаррух.

    • Богдан 08.12.2013 в 10:11 #

      Отлично! Рад был помочь 🙂

  19. Виктор 18.12.2013 в 22:32 #

    Здравствуйте, Богдан! Вставляю шорткод [шорткод] в середине поста с помощью стандартного редактора. Должна появится форма с элементами. Она и появляется, но вверху контента, под заголовком. В какие только div'ы я форму не заворачивал, все одно - не на месте.

    • Богдан 19.12.2013 в 16:00 #

      Здравствуйте, Виктор.

      А что за шорткод вставляете?

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

      • Виктор 19.12.2013 в 20:49 #

        Богдан, вот упрощенный, вставляемый по шорткоду код. Смысл скрипта - данные формы передаются для обработки в другой файл php, результату обработки без перезагрузки страницв выводятся в div'e. Что нужно изменить, чтобы форма появлялась в нужном мете поста?

        function send($f1, $f2, $f3)
        {
         var data = $($f1).serialize();
        
         $.post($f3, data, function(data) {
          $($f2).html(data);
         });
        }
        
        • Богдан 20.12.2013 в 06:42 #

          Код можно оборачивать в тэги [_php] ваш код [/_php], [_javascript] ваш код [/_javascript], только без нижнего подчеркивания.

          Я посмотрел ваш код, там у вас все корректно. Но вы мне не показали самого важного. А именно PHP функцию, которая находится в файле плагина или в файле functions.php (смотря куда вы ее поместили) и отвечает за вывод все этого вашего кода.

          Предполагаю, что у вас там что-то типа этого:

          function echo_script()
          {
          // разрыв оператора <?php
          ?>
          
          <!-- Здесь уже ваш код -->
          
          <script>...</script>
          
          <!-- и т.д. -->
          
          <?php
          // открытие оператора <?php
          }
          add_shortcode('echo_script_shortcode', 'echo_script');
          

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

          Чтобы ваша форма выводилась в нужном месте. Вам нужно кое-что поменять. А именно записать ваш код в переменную PHP, и затем вернуть результат функции через оператор return.

          function echo_script()
          {
           // объявление переменной
           $result = '';
          
           // заполнение переменной, то есть весь ваш код
           // ВАЖНО: перед всеми одинарными кавычками
           // в Вашем коде поставить символ \ (backslash)
           $result .= '<script>...</script>';
          
           // возвращение результата функции
           return $result;
          }
          add_shortcode('echo_script_shortcode', 'echo_script');
          

          И в этот код вместо

          <script> ... </script>

          вам нужно вставить весь ваш код. И тут важный момент: перед всеми одинарными кавычками в Вашем коде поставить символ \ (backslash). Именно в вашем, который вы будете вставлять. Это нужно для того, чтобы одинарные кавычки в PHP, не пересекались с одинарными кавычками в Javascript.

          Если что-то не получится, пишите. И лучше все-таки будет, если вставите свой код 🙂

          • Виктор 20.12.2013 в 20:52 #

            Спасибо за подробное объяснения, сейчас конкретизирую, а то сам все одно не разобрался. Есть файл usn.php, там и javascript и форма:

            <script src="jquery-1.10.1.min.js"></script>
            	<script>
            	function send($f1, $f2, $f3)
                  {
                    var data = $($f1).serialize()
                    $.post($f3, data, function(data) {
                      $($f2).html(data);
                    });
                  }
            	</script>
            <form action="" id="form1" name="form1" >
            <input id="in_6-15" disabled = "true" name="txtProzenty" type="text" size=10 value="6">
            <input type="button" onclick="send($f1 = '#form1', $f2 = '#idRaschet', $f3 = 'usn_jquery.php');" value="Рассчитать" />
            </form>
            
            <div id="idRaschet"></div>

            В функциях темы добавлено:

            function declaratciia(){
               include('script/usn.php');
            }
            add_shortcode('declaratciia', 'declaratciia');

            Т.е. файл подгружается с помощью include. Никак нельзя без изменения самого файла обойтись, просто обработав его в функции declaratciia?

          • Богдан 22.12.2013 в 06:38 #

            Все ясно.

            В таком случае проще всего вам будет сделать так:

            function declaratciia(){
                ob_start();
                include('script/usn.php');
            
                $result = ob_get_contents();
                return $result;
            }
            add_shortcode('declaratciia', 'declaratciia');
            

            В функциях темы вот свой код отредактируйте на этот, и все у вас должно начать корректно работать.

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

            Поэтому, попробуйте вот эту строчку убрать:

            <script src="jquery-1.10.1.min.js"></script>
            

            Это самый простой способ, чтобы вам помочь. Хотя, по-хорошему, я бы избавился от этого include и разместил код внутри функции, только правильно оформив.

  20. Ольга 22.12.2013 в 01:02 #

    Подскажите почему не работает кнопка генератора для вставки шоткода?

  21. Мария 12.03.2014 в 18:55 #

    Богдан, здравствуйте! Что-то я совсем не понимаю куда вставлять шорткод

    • Богдан 13.03.2014 в 09:06 #

      Здравствуйте, Мария. А куда вы хотите вставить шорткод вообще? В какой-то файл шаблона или просто текст записи?

  22. Илья 28.03.2014 в 23:30 #

    Доброго времени! у меня такая проблема с шорт кодом. И предполагаю что виновата тема wordpress и мои неглубокие знания в php. Вообщем делаю всплывающую модальную форму на основе плагина easy fancybox и contact form 7 . Вставляю шорт код в шаблон, форма всплывающем окне не выводится, обернул шорт код в "
    " заработало, но не везде и форма стала отображаться с горизонтальной прокруткой. На главной странице вставляю код пропадает пол шаблона =D . Помогите плиз)

    • Марат 22.10.2014 в 00:35 #

      Илья. На всех шаблонах что я делал аналогичная проблема.
      Все пишут как здорово применять фенсибокс и контакт форм 7, но по моему опыту и моим знаниям (а так же всем тем инструкциям что есть) их можно использовать лишь 1 раз и всегда есть горизонтальная нижняя прокрутка.

  23. Марк 08.11.2014 в 20:50 #

    Доброго времени суток!

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

    • Богдан 02.12.2014 в 15:29 #

      Спасибо за коммент, Марк.

      Чтобы отображать шорткод слайдера только на главной странице, тебе нужно заменить обычный код из статьи:

      &lt;?php echo do_shortcode('[shortcode]'); ?&gt;

      ВОТ на этот:

      &lt;?php if( is_front_page() ){ echo do_shortcode('[shortcode]'); } ?&gt;

      Тут я добавил условие на проверку - является ли текущая страница главной или нет, и если является, то отображать на ней шорткод.

  24. Jons 04.02.2015 в 21:30 #

    Yandex Maps API работает в сайдбар только в том случае, если устанавливаю шорткод и на странице, если убираю, то и в сайдбар перестаёт работать код:

  25. Jons 04.02.2015 в 21:31 #

    echo do_shortcode('[yandexMap center="40.728333,-73.994167" height="300" width="190" fullscreen="true" zoom_inital=11][/yandexMap]');

  26. Тимур 16.03.2015 в 13:45 #

    Здравствуйте, Богдан!
    Спасибо за материал - уже не раз выручил!
    Но вот столкнулся с такой задачей - всем нравится эта тема: http://jellythemes.com/themes/sonoramawp/
    Но для полного счастья принципиально хочу над статичной картинкой в слайдере поставить плеер радио.
    Беру шорткод плеера, формирую строчку кода: и вставляю в файл homepage.php, где и реализован слайдер темы:

    <?php /* Template Name: Home Page 1 */ ?>
    <?php get_header(); ?>
            <?php while ( have_posts() ) : the_post(); ?>
                <div id="<?php echo $post->post_name; ?>" class="slides-1">
                    <div class="overlay"></div>
                    <div class="slides-container">
                        <?php $images = rwmb_meta('_jellythemes_slider_images', 'type=image', $post->ID ); ?>
                        <?php foreach ($images as $image) : ?>
                            <img src="<?php echo $image['full_url'] ?>" alt="">
                        <?php endforeach; ?>
                    </div>
                    <nav class="slides-navigation">
                      <a href="#" class="next"></a>
                      <a href="#" class="prev"></a>
                    </nav>
                </div>
                <div class="main-title">
                    <div class="title-container">
                        <div class="welcome logo">
                            <div class="top-spacer one"></div>
                            <div class="top-spacer two"></div>
                            <?php $images = rwmb_meta('_jellythemes_slider_heading_img', 'type=image', $post->ID ); ?>
                            <?php foreach ($images as $image) : ?>
                                <img src="<?php echo $image['full_url'] ?>" alt="">
    
    [сюда вставляю строчку с шорткодом]
    
                            <?php endforeach; ?>
                            <div class="spacer-box"></div>
    			<?php $texts =  get_post_meta( $post->ID, '_jellythemes_slider_text', true ); ?>
                            <ul>
                                <?php foreach ($texts as $i => $text) : ?>
                                    <li <?php echo $i==0 ? 'class="t-current"' : '' ?>><?php echo $text ?></li>
                                <?php endforeach; ?>
                            </ul>
                        </div>
                    </div>
                </div>
                <div class="full-wrapper">
                    <div class="player-container"> <!-- Audio Player -->
                        <div class="audio-player">
                            <audio preload="none" src="audio/mp3/Daft_Punk_Giorgio_by_Moroder_Stellar_Dreams_Remix.mp3"></audio>
                            <ol class="home-playlist">
                                <?php $tracks = rwmb_meta('_jellythemes_slider_mp3', 'type=file', $post->ID ); ?>
                                <?php foreach ($tracks as $i => $track) : ?>
                                    <li <?php echo $i==0 ? 'class="playing"' : '' ?> ><a href="#" data-track="<?php echo $track['title'] ?>" data-src="<?php echo $track['url'] ?>"><?php echo $track['title'] ?></a></li>
                                <?php endforeach; ?>
                            </ol>
                        </div>
                    </div> <!-- end Audio Player -->
                </div>
            <?php endwhile; ?>
    

    плеер появляется, но слайдер "ломается": кадры слайдера встраиваются в ряд, исчезают кнопки назад-вперед, исчезает родной аудиоплеер внизу...

    Что я делаю не так? Куда лучше вставить строчку с шорткодом плеера, чтобы все работало?

    Спасибо заранее!

    • Богдан 16.03.2015 в 14:04 #

      Тимур, я думаю, что более корректным вариантом будет вставка вашего кода после второй строчки

      <?php get_header(); ?>
      
  27. Ольга 30.03.2015 в 03:36 #

    Добрый день, Богдан.
    Я пытаюсь добавить шоткат аудио плеера только для front page.
    Вот этот код добавляю в header.php ?php
    if(is_front_page()){ echo do_shortcode ( ‘ [sc_embed_player fileurl=" http://localhost:8888/body.fr/public_html/wp-content/uploads/2015/03/danse-dance-body.mp3" autoplay="true"]’);
    }
    ?
    Код выводится в виде текста в заголовке и все. Может какая то ошибка в коде?
    Спасибо

    • Богдан 31.03.2015 в 17:55 #

      Добрый день, Ольга.

      А вы куда именно вставляете этот код?

      Скорее всего, вам нужно вставлять код без тегов < ?php и ?>:

      if( is_front_page() ) {
      echo do_shortcode('[sc_embed_player fileurl="http://localhost:8888/body.fr/public_html/wp-content/uploads/2015/03/danse-dance-body.mp3" autoplay="true"]');
      }
      
      • Ольга 03.04.2015 в 18:13 #

        Я вставляю его в header.php

        • Богдан 14.04.2015 в 11:11 #

          А вы попробовали вставить как я посоветовал в предыдущем сообщении?

  28. Дмитрий 12.04.2015 в 04:29 #

    Богдан, предложенное тобой решение меня спасло. Спасибо!

  29. Алексей 28.08.2015 в 00:26 #

    Здравствуйте, Богдан!

    А как обернуть в шорткод php-код? Т.е. шорткод имеет начало и конец [имя шорткода]...[/имя шорткода].

    Как в этом случае в середину вставить какой-нить php-код?

    • Богдан 17.09.2015 в 12:21 #

      Добрый день, Алексей. А в какой шорткод вы хотите вставить php-код? Почему бы просто не вставить php?

    • Богдан 01.12.2015 в 17:29 #

      Доброго времени суток, Алексей.

      Вам нужно в таком случае зарегистрировать ваш шорткод или отредактировать имеющийся. А именно, в функции, регистрирующей шорткод, прописать второй входящий параметр - content.

      То есть, например, таким образом (в переменной $content находится то, что обернуто в ваш шорткод [shortcode]ВАШ ТЕКСТ[/shortcode])

      function gb_custom_shortcode( $atts, $content = '' )
      {
       extract( shortcode_atts( array(
        'debug' => '0', // например, отображать отладочную информацию
       ), $atts ) );
      
       $result = '<div>Здесь любой ваш код</div>';
      
       if( $debug == '1' )
       {
        $result .= '<div>Отладочная информация</div>';
       }
      
       return $result;
      }
      add_shortcode('shortcode', 'gb_custom_shortcode');
      
  30. Сергей 30.09.2015 в 01:55 #

    Добрый день, Богдан.

    Есть плагин Responsive Progress Bar, который выводит, соответственно, прогресс-бар с помощью такого шоткода:

    [rprogress value=90 text="" color="#..." bgcolor="#..." delay="3000" border_radius="2px" text_color="#..."]

    Этот шоткод используется в разных местах сайта и хочется иметь возможность, поменяв в одном месте, поменять везде. Пробовал сделать простой шоткод, который возвращал бы нужное значение и вставить его, соответственно в параметр "value=" вместо цифры 90. Но, так ничего не работает. Поэтому, вопрос: как в данном случае заставить работать шоткод внутри параметра другого шоткода. Если есть альтернативные варианты решения задачи - тоже буду очень рад.

    • Богдан 01.12.2015 в 17:21 #

      Спасибо за вопрос, Сергей. А какое значение вы хотите вывести вместо цифры 90? Что за шорткод?

  31. Руслан 03.12.2015 в 07:35 #

    Здравствуйте, Богдан! У меня такой вопрос. Знаете как можно шорткод превратить в ссылку?
    У меня шаблон на вордпресс BeTheme с возможностью вывода всплывающих окон (popup). Они вставляются при помощи шорткода. Я хочу вывести всплывающее окно при помощи кнопки шаблона там требуется указать всего лишь ссылку (нет возможности вставить шорткод для открытия, или я что-то не знаю).

    • Руслан 03.12.2015 в 07:40 #

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

    • Богдан 19.12.2015 в 09:40 #

      Здравствуйте, Руслан.

      Спасибо за вопрос. Думаю, что в вашем случае конечно требуется вмешательство в код небольшое.

      Нужно вручную прописать кнопку в виде кода и присвоить ей событие при нажатии, чтобы открывалось всплывающее окно.

  32. Александр 11.02.2016 в 16:25 #

    Богдан помогите, вставляю в functions.php следующий код

    function lift_shortcode(){
    
    get_template_part('templates/lift_shc');
    
    }
    add_shortcode( 'lift', 'lift_shortcode' );
    

    и при вставке в страницу он всегда вверху, как изменить данную ситуацию.

    PS все способы которые вы писали выше не помогли

    • Богдан 12.02.2016 в 20:08 #

      Спасибо за вопрос, Александр.

      Поделюсь с вами одной хитростью 🙂 Шорткод возвращает результат в нужном месте поста, только если результат не "выводится", а "возвращается" в результате исполнения функции. Функция get_template_part просто подключает содержимое указанного файла через require, а в шаблоне обычно прямой вывод текста, что равноценно echo, поэтому результат у вас и выводится перед постом. Потому что шорткоды обрабатываются перед тем, как выводится пост. А если там срабатывает функция echo, то там же все и выводится.

      Короче говоря, попробуйте так:

      function lift_shortcode(){
      
      ob_start();
      get_template_part('templates/lift_shc');
      $out = ob_get_clean();
      
      return $out;
      
      }
      add_shortcode( 'lift', 'lift_shortcode' );
      
      • Александр 16.02.2016 в 01:37 #

        Богдан приОгромнейшее спасибо, за одно выучил таки функцию ob_start....

  33. Елена 02.04.2016 в 13:59 #

    Здравствуйте,

    хочу вставить аккордеон в раздел About на одностраничном сайте. Но почему-то шорткод отображается на сайте в виде кода (можете заглянуть на сайт). Как это исправить? Использую плагин Squelch Tabs and Accordions Shortcodes.

    • Богдан 03.04.2016 в 09:44 #

      Здравствуйте, Елена.

      А у вас содержимое страницы About через стандартный текстовый редактор Вордпресса создано или через какой-то плагин/конструктор?

      • Елена 03.04.2016 в 22:05 #

        Содержимое создано через стандартный редактор.

        • Богдан 06.04.2016 в 09:37 #

          Попробуйте добавить в файл functions.php вашей темы через админку - меню Внешний вид - Редактор - Функции темы между тэгами < ?php и ?> следующую строку:

          add_filter('the_content', 'do_shortcode', 11);
  34. Сергей 15.04.2016 в 01:30 #

    Богдан, а почему может быть такое, что иногда шорт-код срабатывает, а иногда нет. К примеру, я создаю страницу под вывод списка всех товаров одной из категории. На этой странице, я вставляю шорт-код, отвечающий за вывод всех товаров из этой категории. И всё работает, т.е. на странице выводятся товары из этой категории. Но тут же создаю другую страницу, под другую категорию, вставляю тот же шорт-код (разумеется в шорт-коде меняю только название соответствующие той категории, под которую создаю страницу). И на этот раз, шорт-код не срабатывает, т.е. отображается только пустая страница.
    У меня семь категорий, и для четырех из них, шорт-код сработал, а для трех - нет. Почему может так происходить?

    • Богдан 17.04.2016 в 20:25 #

      Здравствуйте, Сергей. Напишите сюда шорткоды все, которые используете. Только пометьте какие рабочие. Попробуем разобраться.

  35. Сергей 18.04.2016 в 00:21 #

    Вот, например, этот шорт-код работает:

    [product_category category="Фармацевтика" per_page="12" columns="4" orderby="date" order="desc"]

    А вот этот, уже нет:

    [product_category category="Одежда" per_page="12" columns="4" orderby="date" order="desc"]

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

    • Богдан 22.04.2016 в 13:45 #

      Понял в чем ваша ошибка. Вам нужно в параметре category использовать не название категории, а то слово, которое формируется для ссылки (WooCommerce > Категории > столбец "ярлык").

      • Сергей 29.04.2016 в 00:21 #

        Спасибо, Богдан! Вы мне очень помогли!

  36. Сергей 22.04.2016 в 12:10 #

    Здравствуйте Богдан. Подскажите как можно взять шорткод gallery с каждой страницы или поста под разным именем шоркода, что бы его потом обрабатывать в function.php для разных например слайдеров, а то выходит что вызывается одна галерея.

    • Богдан 22.04.2016 в 14:06 #

      Сергей, мне кажется в данном случае, вам нужно свой шорткод и обработчик для него регистрировать.

      Это можно сделать таким образом:

      function gb_custom_shortcode( $atts, $content = '' )
      {
       // $atts это массив с параметрами указанными для шорткода [your_gallery], а массив ниже - значения по умолчанию
       $atts = shortcode_atts( array(
        'foo' => 'no foo',
        'baz' => 'default baz'
       ), $atts, 'your_gallery' );
      
       // ваш код и return результата в конце ...
      }
      add_shortcode('your_gallery', 'gb_custom_shortcode');
      

      Более подробно о том, как работают шорткоды можно узнать здесь

  37. Ян 04.05.2016 в 19:19 #

    Добры день, подскажите, нужно с помощью шорткода вывести произвольные записи. Вот вариант почти рабочий:

    function rmcc_basket_single_product_parameters_shortcode() {
        global $post;
    	return '' . __("Title", "simple_basket") . ': ' . get_post_meta($post-&gt;ID, "title", true) . ''
        '' . __("Price", "simple_basket") . ': ' . get_post_meta($post-&gt;ID, "price", true) . ''
    	'' . __("Price of action", "simple_basket") . ': ' . get_post_meta($post-&gt;ID, "price-share", true) . '';
    }
    add_shortcode('basket-single-product', 'rmcc_basket_single_product_parameters_shortcode');
    

    Беда в том, что выдает синтаксическую ошибку. Можете помочь? А так если удаляю строку с произвольным полем price-share, то работает.

    • Богдан 04.05.2016 в 19:26 #

      Здравствуйте Ян. Спасибо за вопрос. У вас тут напутано с кавычками немного. Смысл в том, что нужно 'текст' . 'всегда' . 'связывать' таким образом , даже если переносите часть подобной строки на новую строку для удобства. Я поправил ваш код, убрав лишние кавычки на первой и второй строке после return.

      function rmcc_basket_single_product_parameters_shortcode() {
          global $post;
      	return __("Title", "simple_basket") . ': ' . get_post_meta($post->ID, "title", true) .
          '' . __("Price", "simple_basket") . ': ' . get_post_meta($post->ID, "price", true) .
      	'' . __("Price of action", "simple_basket") . ': ' . get_post_meta($post->ID, "price-share", true);
      }
      add_shortcode('basket-single-product', 'rmcc_basket_single_product_parameters_shortcode');
      
      • Ян 20.05.2016 в 20:49 #

        Спасибо за ответ. Да, работает:)

  38. Виталий Охрименко 05.06.2016 в 10:38 #

    Богдан, классная статья, может ты и мне сможешь помочь?
    Смотри, есть сайт http://cleaningproserv.com/, в самом шаблоне есть возможность выводить слайдер. Для слайдера есть шорткод [layerslider id="7"], который спокойно распознается в контенте, но не хочет срабатывать в файлах шаблона в таком коде:
    Он срабатывает только в случае, если на странице уже есть слайдер.
    Это означает, что слайдер в контенте выводит какие-то исполнители, которые этот слайдер выполняют. Поискал, кое-что нашел (пару скриптов и один идентификатор стилей), получилось вывести этот слайдер в подвале при помощи HTML. А вот кодом php не срабатывает.
    HTML тоже можно, но это головняк когда придется изменить 1 картинку в слайдере придется менять весь код ( или его части).
    В общем Богдан, не откажи в любезности, объясни пожалуйста как можно в этом случае вывести слайдер php кодом в футере шаблона. Незнаю, мож я чего не добавил?
    Для сравнения страница, на которой слайдер добавлен в контент: http://cleaningproserv.com/4287-2/ (вставил другой слайдер, так как при вставке слайдера "7" тот, который в подвале, перестает отображаться).
    Заранее большущее спасибо за ответ!

  39. Максат 07.06.2016 в 15:14 #

    Здравствуйте Богдан. Пытаюсь вставить в страницу с рубриками(Бизнес,финансы,право к примеру) шорткод от revslider [rev_slider alias="main"]
    но на сайте выходит сам шорткод но не выводится слайдер. Что можете посоветовать как сделать так что бы на каждой рубрике выводился свой слайдер?

  40. Александр 09.07.2016 в 04:23 #

    Здравствуйте!

    Узнал, что можно вставлять шорткоды в "тему" сайта. Здорово! Но вот куда и как именно вставлять их нигде не нашёл. Я хочу в шапку "темы" вставить шорткод "". Значит, как я понял его нужно прописать в файле "header.php". Но в каком конкретно месте нигде в Инете не нашёл. Может подскажете в какую строчку кода нужно прописывать? Вот образец файла:

    <?php
    /**
    * The Header
    *
    * Displays all of the section and everything up till
    *
    * @package Cryout Creations
    * @subpackage parabola
    * @since parabola 0.5
    */
    ?>
    <html >

    <meta http-equiv="Content-Type" content="text/html; charset=" />

    <link rel="pingback" href="" />

    <body >


     


  41. Александр 12.07.2016 в 02:40 #

    Здравствуйте!
    Как мне в хеддер вставить шорткод? В каком именно месте в файле "heder.php" его нужно прописывать?

  42. Андрей 29.07.2016 в 01:28 #

    Вау, я так быстро не находил ответы на свои вопросы! Спасибо автору!!!

  43. Сергей 17.10.2016 в 15:22 #

    Здравствуйте!

    Использую дочернюю тему. В файле functions.php создал простой шорткод:

    function author_vkapk() {
    return 'Тест';
    }
    add_shortcode('author_vkapk_sh', 'author_vkapk');

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

  44. andron81 20.11.2016 в 23:43 #

    написал несложный плагин для wp.
    в самом конце прописал shortcode:
    function sert( $atts ) {
    /*ничего особенного*/
    }

    add_shortcode( 'sertificate_link','sert' );

    а на странице просто тупо делаю так :

    [sertificate_link id=22]

    так вот выясняется , что процедура shortcode отрабатывается аш 3 раза. А хотелось бы один .

  45. Ульяна 21.06.2017 в 16:35 #

    Не подскажешь как решить проблему,установила плагин галереи КУб,а он почему-то автоматом встает в левый угол,а мне его в правый угол нужно под лого поставить так то у меня тема монстроид 2 и идет глюк какой-то не могу понять в какой файл вставить редакторе,уже замучилась не подскажешь?

  46. Людмила 14.01.2018 в 23:28 #

    Спасибо! Очень полезно... и ваши советы в комментариях тоже 🙂

  47. Дмитрий 10.02.2018 в 20:30 #

    Всё работает!! Спасибо огромное!!!

  48. Айгуль 25.01.2019 в 13:21 #

    Здравствуйте Богдан! Прочитала Ваш пост и все комментарии, была удивлена тем, что Вы помогаете решить проблему всем без исключения. Еще понравилось то, что объясняете толково и доходчиво. А зашла я на Ваш сайт в поиске ответа на свой вопрос, как вывести слайдер от плагина Smart Slider 3 только на главной странице сайта, чтобы не отображался на других страницах и записях? Вот шорт код

    Слайдер уже стоит на сайте, но отображается на всех страницах и записях. Буду признательна если ответите на мое сообщение.)

    • Богдан 10.04.2019 в 09:44 #

      Здравствуйте, Айгуль. Спасибо за теплые слова!

      Получается у вас этот слайдер вставлен не через шорткод в сайт на данный момент?

      P.S. Еще похоже, что шорткод, который вы указали, был "съеден" при добавлении коммента. Лучше его в фигурные скобки обернуть.

  49. Александр 10.04.2019 в 01:30 #

    Доброго времени суток!
    Вопрос такой:
    У меня стоит плагин дополнительных отзывов.
    Имеется плагин рейтинга. Для его добавления нужно вставить шорткод в конце каждого отзыва пользователя, но не хочется обременять пользователей вставкой шорткода в конец своего отзыва...
    Подскажи пожалуйста как это реализовать?

  50. александр 10.04.2019 в 02:26 #

    Привет!
    Писал с телефона, теперь вот с компьютера...
    В общем ситуация такая - На сайте стоит плагин отзывов "strong testimonial". В плагине есть функция рейтинга, но она работает не так как мне нужно...
    Поэтому пришлось подключить дополнительно плагин рейтинга "kk star ratings"
    Когда я вставляю шоткод плагина рейтинга прямо в отзыв (в конец отзыва) - тогда я получаю именно тот результат - который мне нужен! Сразу после отзыва появляются звёздочки рейтинга, и другие смогут оценивать данный отзыв.

    Но не хочется напрягать пользователей вставкой шоткода в конец своего отзыва! Подскажи пожалуйста Богдан, как быть!
    Как я понял поработать следует с файлом class-strong-form.php
    И вроде даже нашёл ту часть кода - куда нужно внедрить шоткод рейтинга, не дилема - на знаю как это сделать правильно...

    Если я правильно понял вставить нужно в этот Код Файла "class-strong-form.php":

    * Add our actions.
    */
    public function add_actions() {
    add_action( 'init', array( $this, 'process_form' ), 20 );

    add_action( 'wp_ajax_wpmtst_form2', array( $this, 'process_form_ajax' ) );
    add_action( 'wp_ajax_nopriv_wpmtst_form2', array( $this, 'process_form_ajax' ) );
    }

    Заранее спасибо!

    • Богдан 10.04.2019 в 10:09 #

      Здравствуйте, Александр.

      Если я правильно понял, вам нужно этот шорткод в конце каждого отзыва вставить.

      Как пример, вы можете использовать вот этот код, он добавит ваш шорткод рейтинга ко всем комментариям:

      function gb_add_rating( $comment_text )
      {
      	$comment_text .= '<br />[shortcode_star_rating]';
      
      	return $comment_text;
      }
      add_filter( 'comment_text', 'gb_add_rating' );
      

      Только вам надо вместо [shortcode_star_rating] свой шорткод вставить.

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

      Думаю должно сработать.

  51. александр 10.04.2019 в 13:11 #

    Благодарю Богдан за скорый ответ!

    Да, Богдан нужно не к комментариям, а к отзывам прикрутить.
    Попробовал этот код в отзывах он вообще не работает, а в комментах работает, но кривенько... - То есть я вижу слева шоткод, справа рейтинг(не активный - как просто картинка...)
    Да это в общем то и не важно! Потому как мне не совсем это нужно.

    Но суть Богдан ты понял, и подсказку дал в нужном направлении! Спасибо!

    Ещё вопрос по теме:

    Ты пишешь: А чтобы добавить это не комментам, а к отзывам, то вам нужно
    найти фильтр аналогичный фильтру "comment_text". В данном
    примере фильтр "comment_text"

    Искать в function.php, или в файлах плагина?
    И как он примерно может выглядеть?

    Спасибо заранее за твой труд!

  52. александр 10.04.2019 в 13:48 #

    С помощью функции браузера "посмотреть код элемента" - нашёл где копать, поместил в function.php следующий код:

    <?php
    function gb_add_rating( $wpmtst_post_content )
    {
    $wpmtst_post_content .= '[kkstarrating]';

    return $wpmtst_post_content;
    }
    add_filter( 'wpmtst_post_content', 'gb_add_rating' );

    Не работает! Что не так Богдан? Выводит звёздочки рейтинга (да и те не активные!) к сожалению почему-то в обычных комментах(
    В отзывах вообще как будто кода нет!

    Направь пожалуйста в нужное русло?! Благодарю!

    • Богдан 15.04.2019 в 09:08 #

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

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