Рекламные блоки в цикле анонсов

Рекламные блоки в цикле анонсов
Автор блога
Андрей WPM

Андрей WPM

Внедряем любую рекламу в цикл анонсов WP.

Привет коллеги! В этой статье, я покажу как можно внедрить в ленту статей WordPress любой рекламный блок. Более того, покажу как внедрить не один блок, а бесконечное число с определенным интервалом записей. В общем, сегодня мы будем грамотно монетизировать ленту анонсов на новостных сайтах WP. Прочитав эту статью полностью, вы сможете внедрить любые рекламные блоки (например Adsense или какую-то другую партнерку или может собственный баннер), в цикл анонсов на блоге.

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

  1. allfacebook.com.ua – Выводить только после определенного анонса по счету. Для каждого нового счета приходится прописывать отдельный html блок. (А если их нужно, скажем 10-20?).
  2. gnatkovsky.com.ua – Принцип вывода рекламных блоков очень схож с первым. Там автор тоже предлагает для каждого рекламного блока создавать отдельный html блок.
  3. oddstyle.ru – Автор предлагает практически то же самое, что и два других, только немного код видоизменен. Но по итогу, блок вставляется только в определенном месте один раз.

Просмотрев весь топ и не найдя нужного способа, решил сам поколдовать над кодом и заодно, решил им поделиться с вами. Итак, как работает мой код? А работает он следующим образом: рекламные блоки будут выводиться через определенное количество записей до бесконечности. К примеру, вы захотели поставить рекламный баннер через каждые 2 анонса, вы просто устанавливаете нужную цифру и всё. Можно выводить блоки после каждой записи, через одну, через две, через три и так далее. То есть, столько, сколько вам нужно. При этом, абсолютно не имеет значение сколько анонсов вы выводите в ленте. Пусть их будет хоть 150, всё равно рекламный блок будет выводиться с нужным интервалом. Итак, начнем ...

 

Ищем сам цикл, который выводит записи.

Обычно, этот цикл выводиться в файле index.php который находится в корне вашей темы. В большинство темах он называется именно так. Но бывают и другие названия, например: arhive.php или main.php. В общем, вам нужен центральный файл, который выводит список анонсов у вас в шаблоне. Найти его будет легко, если искать по определенной функции (точнее по определенному циклу). Он во всех шаблонах одинаковый, поэтому не ошибетесь. Выглядит он вот так:

<?php if ( have_posts() ) :
	while ( have_posts() ) : the_post();
	get_template_part( 'template-parts/content', get_post_format() );
	endwhile;
	get_template_part( 'navigation', 'none' );
	else :
	get_template_part( 'no-results', 'none' );
endif; ?>

У меня он выводиться как кусок php кода, у вас же может выводиться среди html разметки. Но суть одинаковая, вам нужен цикл while. На живом примере это выглядит так:

Цикл While
Цикл while – вывод записей в ленте WP

Обратите внимание на конструкцию while ... endwhile. Именно эта конструкция отвечает за вывод записей в цикле. То есть, всё что находится между этими двумя словами, будет повторяться на странице столько раз, сколько вы указали в настройках, когда выставляли количество анонсов на странице.

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

 

Внедряем рекламный код в цикл анонсов.

Первым делом, вам нужно создать две переменные, которые будут отвечать за счетчик и за условие.

  1. $post_count = 0; // Начальная точка счетчика анонсов.
  2. $count_anons = 3; // Количество анонсов которые нужно пропустить.

Эти две переменные вам нужно поместить перед условием – if ( have_posts() ) : можно прям сверху него. Эти две переменные НЕ должны находиться внутри цикла while! Далее, находим конец цикла – endwhile – и пред ним вставляем следующий код:

if($post_count == $count_anons – 1){?> // Закрываем php, чтобы вставить div.
	<div class="reklama-adsense">Тут любой код: js, php, html</div>
<?php // Открываем заново php после вставки div.
	$post_count = 0;
	}else{
	$post_count++;
}

Итак, что тут происходит? После того, как первый анонс был выведен на экран, условие проверяет какой он по счету (первая строчка). В данном примере мы указали количество анонсов 3 в переменной $count_anons которую мы создали в самом начале. И если этот анонс равен цифре 3, значит после него выводится рекламный блок и переменная счетчика обнуляется (четвертая строка). Если же не 3, а например 1 или 2, то блок не выводится и цикл повторяется при этом счетчик увеличивается. Наглядный пример полного кода:

Код цикла
Полный код внедрения рекламного блока в цикл

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

Чтобы установить нужное количество анонсов которые надо пропустить, вы просто меняете цифру на нужную в переменной $count_anons и всё, больше ничего не трогаете. Например: вы хотите выводить рекламный блок после каждого анонса – значит устанавливаете в переменную $count_anons цифру 1. Если же хотите, чтобы блок появлялся после каждого второго анонса – устанавливаете цифру 2. Я на этом блоге установил через каждые 4. В таком количестве реклама не сильно раздражает посетителей и мне копеечка падает. Вы же, можете поставить любую нужную цифру в зависимости от количества анонсов в вашей ленте. Посмотреть как это работает, можете в ленте анонсов.

 

Внедряем ротатор в рекламный блок.

Как вы могли заметить, на последнем скрине у меня в блоке div выводится шорткод echo do_shortcode(' [ sc name="lenta-bloga"] ' );. Это сделано для того, чтобы реклама выводилась в рандомном порядке. То есть, я в плагине Ads by datafeedr.com создал несколько рекламных блоков и они показываются в ротаторе. В код, я лишь добавил шорткод нужной категории рекламы и этот шорткод уже сам показывает рандомно всю рекламу из этой категории. Если вам нужны подробные настройки по этому плагину, пишите в комментариях, я напишу обзор этого плагина вне очереди.

А на этом у меня сегодня всё. Честно говоря, думал что статья получиться больше, но думаю вы не очень расстроитесь. И, как обычно, если вдруг возникли вопросы, смело пишите в комменты, будем обсуждать. До встречи на страницах этого блога.

Андрей WPM
Опубликовал - Андрей WPM

Друзья, блогу нужна ваша поддержка. Если вам понравилась статья или она вам помогла решить задачу, поделитесь ею в одной из соцсетей. Этим вы поможете дальнейшему развитию. Всем активистам - спасибо!


CTRL+D

Бонус для читателей WPMaster.kz. Предлагаю познакомиться с новым разделом на блоге - Промокоды. Только самые лучшие и нужные промокоды для покупок плагинов, тем, обучения, сервисов и т.д.



Вопросы не по теме статьи, задавайте в разделе "Флудилка".

avatar
1000
  Подписаться  
Уведомление о