Support » Plugin: RSS for Yandex Turbo » Как добавить шорткод для Я. Маркета

  • Resolved mugik88

    (@mugik88)


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

    Интересуют ответы на такие вопросы:
    1) Подскажите шорткод для Яндекс Маркета.
    2) Если есть такой шорткод который вставляет Маркет в турбо, можно ли его вставить в статью или он вставляется именно в турбо страницы.

Viewing 6 replies - 1 through 6 (of 6 total)
  • Plugin Author Flector

    (@flector)

    примерно так:

    
    function ymarket_shortcode( $atts, $content ) {
        //получаем настройки плагина, чтобы узнать имя RSS-ленты
        $yturbo_options = get_option('yturbo_options');
        $rssturboname = $yturbo_options['ytrssname'];
    
        //если это не наша RSS-лента, то шорткод будет удален
        if ( ! is_feed($rssturboname) ) return '';
    
        //формируем виджет маркета
        $content = '
    
    <!-- Yandex.Market Widget --><script async src="https://aflt.market.yandex.ru/widget/script/api" type="text/javascript"></script><script type="text/javascript">!function(e){function a(){e.removeEventListener("YaMarketAffiliateLoad",a),e.YaMarketAffiliate.createWidget({type:"models",containerId:"marketWidget",fallback:!0,rotate:{marketToBeru:!1,beruToMarket:!0},params:{clid:2390072,searchCount:6,searchType:"recommended",themeId:4}})}e.YaMarketAffiliate?a():e.addEventListener("YaMarketAffiliateLoad",a)}(window);
    </script><!-- End Yandex.Market Widget --><div id="marketWidget"></div>
    
        ';
    
        return $content;
    }
    add_shortcode ( 'ymarket', 'ymarket_shortcode' );
    

    используем, вставляя в записи шорткод [ymarket].

    Спасибо, работает! Но единственное одно но, если выводить шорткод с помощью плагина AD Inserter в турбо ленту не попадает его код. Соответственно нет возможности реализовать автоматическую вставку шорткода на все записи сразу.

    <div class="code-block code-block-10" style="margin: 8px auto; text-align: center; display: block; clear: both;">
    
    <script>...</script>
    
    </div>

    Как-то можно сделать так, чтобы через него можно было добавлять? Или может есть другие решения? И еще вопрос – Чтобы второй шорткод добавить, нужно заново прописывать всю функцию описанную выше или можно объединить.

    Plugin Author Flector

    (@flector)

    если вставляете виджет в конце записи, то можете просто в шаблоне шорткод прописать.

    Попробовал прописать в шаблоне <?php echo do_shortcode( '[ymarket]' ); ?> но что-то в турбо страницах не появляется скрипт Маркета. Вообще турбо страница обновляется сразу после добавления информации или нужно кэш сбросить записей. Турбо страницу обновлял с помощью команды Ctr+F5. И что насчет второго шорткода, не ответили выше.

    Plugin Author Flector

    (@flector)

    я имел ввиду в шаблоне в настройках плагина.
    просто прописать там [ymarket]

    второй шорткод делать также.
    добавьте только везде цифру 2.

    function ymarket_shortcode2( $atts, $content ) {
        //получаем настройки плагина, чтобы узнать имя RSS-ленты
        $yturbo_options = get_option('yturbo_options');
        $rssturboname = $yturbo_options['ytrssname'];
    
        //если это не наша RSS-лента, то шорткод будет удален
        if ( ! is_feed($rssturboname) ) return '';
    
        //формируем виджет маркета
        $content = '
    
    <!-- Yandex.Market Widget --><script async src="https://aflt.market.yandex.ru/widget/script/api" type="text/javascript"></script><script type="text/javascript">!function(e){function a(){e.removeEventListener("YaMarketAffiliateLoad",a),e.YaMarketAffiliate.createWidget({type:"models",containerId:"marketWidget",fallback:!0,rotate:{marketToBeru:!1,beruToMarket:!0},params:{clid:2390072,searchCount:6,searchType:"recommended",themeId:4}})}e.YaMarketAffiliate?a():e.addEventListener("YaMarketAffiliateLoad",a)}(window);
    </script><!-- End Yandex.Market Widget --><div id="marketWidget"></div>
    
        ';
    
        return $content;
    }
    add_shortcode ( 'ymarket2', 'ymarket_shortcode2' );

    Спасибо, работает!

Viewing 6 replies - 1 through 6 (of 6 total)
  • You must be logged in to reply to this topic.