Вставка рекламы после n-го абзаца
Здравствуйте, подскажите как можно вставить рекламный блок в теле статьи, например после 2 или 3 абзаца от начала статьи?
Комментарии: 20
2 варианта:
1. Вставить прямо в теле статьи вызов чанка\сниппета вручную, если автор текста понимает, что делает и разрешены теги в контенте.
2. Написать простенький фильтр вывода, который будет вставлять вызов чего надо через n тегов p в тексте, и вызывать контент примерно так:
1. Вставить прямо в теле статьи вызов чанка\сниппета вручную, если автор текста понимает, что делает и разрешены теги в контенте.
2. Написать простенький фильтр вывода, который будет вставлять вызов чего надо через n тегов p в тексте, и вызывать контент примерно так:
[[*content:advertising]]
Как вариант — при помощи jquery:
— допустим, мы отмеряем абзацы исключительно тегами p. Тогда, обернув поле контента статьи в контейнер с id=«articleBody», дописываем скрипт:
— допустим, мы отмеряем абзацы исключительно тегами p. Тогда, обернув поле контента статьи в контейнер с id=«articleBody», дописываем скрипт:
<script type="text/javascript">
$("#articleBody p:eq(3)").after('<div>Рекламный блок!</div>');
//вы можете менять порядковый номер абзаца, после которого нужно вставить рекламу при помощи аргумента eq(число). Отсчет в нем начинается с 0.
</script>
А если рекламный блок тоже javascript, как в таком случае быть?
Блок адсенса хочу вывести таким образом.
Блок адсенса хочу вывести таким образом.
Приложите код рекламного блока — помогу адаптировать.
Если он также вставляется методами javascript'a — то проблем со вставкой в желаемое место не возникнет.
Если он также вставляется методами javascript'a — то проблем со вставкой в желаемое место не возникнет.
код адсенса:
<script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
<!-- adaptiv_article -->
<ins class="adsbygoogle"
style="display:block"
data-ad-client="ca-pub-XXXXXXXXXXXXXXXX"
data-ad-slot="XXXXXXXXXX"
data-ad-format="auto"></ins>
<script>
(adsbygoogle = window.adsbygoogle || []).push({});
</script>
<script type="text/javascript" src="https://code.jquery.com/jquery-latest.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$("#articleBody p:eq(3)").after('<ins class="adsbygoogle" style="display: block;" data-ad-client="ca-pub-XXXXXXXXXXXXXXXX" data-ad-slot="XXXXXXXXXX" data-ad-format="auto"></ins>');
});
</script>
<script src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
<script>
$(document).ready(function(){
(adsbygoogle = window.adsbygoogle || []).push({});
});
</script>
Здравствуйте! А возможен ли такой вариант, но только для рекламного блока яндекс, а не гугл?
Может просто вывести чанк с рекламным блоком? Не не выход?
ммм можно по подробнее пожалуйста?
сарказм)
Делал очень давно, сейчас бы сделал по другому, но что есть, то есть )
Сниппет adsense
Сниппет adsense
<?php
//спустя сколько символов искать перенос строки и вставлять рекламу?
$nu = 3800;
//Код рекламы
$adsense = <<<HTML
<div class="sense">
<script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
<ins class="adsbygoogle"
style="display:inline-block;width:728px;height:90px"
data-ad-client="ca-pub-1233335915169539"
data-ad-slot="2233378009"></ins>
<script>
(adsbygoogle = window.adsbygoogle || []).push({});
</script></div>
HTML;
$a = preg_replace('@([^^]{'.$nu.'}.*?)(\r?\n\r?\n|</p>)@', "\\1$adsense\\2", trim($content), 1);
return $a;
Вызов (в шаблоне вместо [[*content]])[[adsense? &content=`[[*content]]`]]
Спасибо, все работает.
Здравствуйте. Подскажите, как вставить 2 рекламных блока после разного количества символов, например после 1 блок после 300 символов, 2 блок после 1000 символов
Привет. Получилось вставить 2 рекламных блока?
Точно уже не помню, как то так, но будет некорректно считать после скольки символов всталять рекламу
<?php
//спустя сколько символов искать перенос строки и вставлять рекламу 1?
$nu = 3800;
//Код рекламы
$adsense = <<<HTML
<div class="sense">
<script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
<ins class="adsbygoogle"
style="display:inline-block;width:728px;height:90px"
data-ad-client="ca-pub-1233335915169539"
data-ad-slot="2233378009"></ins>
<script>
(adsbygoogle = window.adsbygoogle || []).push({});
</script></div>
HTML;
$a = preg_replace('@([^^]{'.$nu.'}.*?)(\r?\n\r?\n|</p>)@', "\\1$adsense\\2", trim($content), 1);
//спустя сколько символов искать перенос строки и вставлять рекламу 2?
$nu1 = 5400;
//Код рекламы
$adsense1 = <<<HTML
<div class="sense">
<script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
<ins class="adsbygoogle"
style="display:inline-block;width:728px;height:90px"
data-ad-client="ca-pub-1233335915169539"
data-ad-slot="2233378009"></ins>
<script>
(adsbygoogle = window.adsbygoogle || []).push({});
</script></div>
HTML;
$a1 = preg_replace('@([^^]{'.$nu1.'}.*?)(\r?\n\r?\n|</p>)@', "\\1$adsense1\\2", trim($a), 1);
return $a1;
Принцип понятен, спасибо!
Привет. Что исправить, чтобы вставка была после тега /p?
Сейчас рекламный блок вставляется перед закрывающим тегом /p, в результате чего в валидаторе HTML получаем ошибку и лишние теги, тк скрпит не оборачивается тегами p.
Сейчас рекламный блок вставляется перед закрывающим тегом /p, в результате чего в валидаторе HTML получаем ошибку и лишние теги, тк скрпит не оборачивается тегами p.
Привет. Куда здесь вставить
Сейчас вставляет только после абзаца
</blockquote>
, чтобы делал вставку блока после цитаты?Сейчас вставляет только после абзаца
</p>
.
Спасибо за метод, все работает. А как сделать что бы вставка была не после 3800 символов, а после скажем 3-го img А то у меня контента по разному может 1000 символов, а может и 5000 быть, а картинок всегда штук 10. Заранее спасибо!)
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.