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