Здравствуй, уважаемый друг!

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

Спасибо за понимание.

Создание сайтов Харьков

Как добавить Google Adsense в середину записи WordPress

5 февраля 2015 в 13:00 Автор: Nikita_Sp в категории Статьи о php 10 комментариев

При создании сайта, если вы собираетесь его в дальнейшем монетизировать, следует обратить внимание и продумать места для размещения рекламы в будущем. И я говорю не только о Google Adsense, но и про другие рекламные блоки.

Как вставить рекламу в текст записи WordPress

Одними из популярных мест для размещения рекламных блоков является шапка сайта (начало статьи, страницы), но разместить там код рекламного баннера достаточно просто, а как разместить код того же Google Adsense в тексте записи сайта на WordPress без плагинов?

Итак, для того чтобы разместить код рекламного блока Google Adsense или других рекламных площадок, вам необходимо будет отредактировать файл functions.php в папке с вашей темой.

Добавим в код вашего файла (можно в конец файла) следующую функцию:

function prefix_insert_after_paragraph( $insertion, $paragraph_id, $content ) {
	$closing_p = '</p>';
	$paragraphs = explode( $closing_p, $content ); // разбиваем текст статьи по параграфам
	foreach ($paragraphs as $index => $paragraph) { // пробегаемся по параграфам
		if ( trim( $paragraph ) ) {
			$paragraphs[$index] .= $closing_p; // добавляем вырезанные на 3 строке закрывающие теги параграфа
		}
		if ( $paragraph_id == $index + 1 ) { // если номер текущего параграфа = номеру требуемого - добавляем код блока
			$paragraphs[$index] .= $insertion;
		}
	}

	return implode( '', $paragraphs ); // совмещаем все параграфы вместе и отдаем
}

Данная функция позволяет разбивать текст ($content) ваших записей/постов блога на блоки по параграфам и вставляет после определенного номера ($paragraph_id) параграфа код, передаваемый в функцию в переменной $insertion.

Далее нам необходимо вызвать эту функцию при обращении к нашей записи. Для этого нам необходимо добавить строку с добавлением фильтра и функцию:

add_filter( 'the_content', 'prefix_insert_post_ads' ); // Добавляем обработку текста статьи
function prefix_insert_post_ads( $content ) { // В функцию передаем текст статьи
	$ad_code = 'Тут код вашего рекламного блока'; // Указываем код рекламного блока для вставки
	if ( is_single() && ! is_admin() ) { // вызываем функцию для одиночной записи и не вызываем функцию если мы в администраторской панели
		return prefix_insert_after_paragraph( $ad_code, 2, $content ); // Если были соблюдены все правила возвращаем обработанный функцией исходный код статьи уже с кодом рекламного блока
		// передаются параметры: код рекламного блока, номер параграфа, после которого будет блок размещен, контент
	}
	return $content; // в противном случае возвращаем просто текст статьи
}

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

add_filter( 'the_content', 'prefix_insert_post_ads' );
function prefix_insert_post_ads( $content ) {
	$ad_code = 'Тут код вашего рекламного блока';
	if ( is_single() && ! is_admin() ) {
		$closing_p = '</p>';
		$paragraphs = explode( $closing_p, $content );
		foreach ($paragraphs as $index => $paragraph) {
			if ( trim( $paragraph ) ) {
				$paragraphs[$index] .= $closing_p;
			}
			if ( X == ($index + 1) ) { // X = номер параграфа
				$paragraphs[$index] .= $ad_code;
			}
		}
		return implode( '', $paragraphs ); // совмещаем все параграфы вместе и отдаем
	}
	return $content;
}

Если вы хотите добавить несколько рекламных баннеров в текст вашей статьи, то вам необходимо добавить просто еще одно условие, например такое:

add_filter( 'the_content', 'prefix_insert_post_ads' );
function prefix_insert_post_ads( $content ) {
	$ad_code = 'Тут код вашего рекламного блока';
	/* Добавляем второй рекламный блок */
	$ad_code = 'Тут код вашего второго рекламного блока';
	/* Добавили второй рекламный блок */
	if ( is_single() && ! is_admin() ) {
		$closing_p = '</p>';
		$paragraphs = explode( $closing_p, $content );
		foreach ($paragraphs as $index => $paragraph) {
			if ( trim( $paragraph ) ) {
				$paragraphs[$index] .= $closing_p;
			}
			if ( X == ($index + 1) ) { // X = номер параграфа
				$paragraphs[$index] .= $ad_code;
			}
			/* Добавляем второе условие */
			if ( X2 == ($index + 1) ) { // X2 = номер второго параграфа
				$paragraphs[$index] .= $another_ad_code;
			}
			/* Добавили второе условие */
		}
		return implode( '', $paragraphs ); // совмещаем все параграфы вместе и отдаем
	}
	return $content;
}

А если вы хотите добавить рекламный блок в конец записи на сайте на WordPress, то просто добавьте условие:

add_filter( 'the_content', 'prefix_insert_post_ads' );
function prefix_insert_post_ads( $content ) {
	$ad_code = 'Тут код вашего рекламного блока';
	if ( is_single() && ! is_admin() ) {
		$closing_p = '</p>';
		$paragraphs = explode( $closing_p, $content );
		$count_p = count($paragraphs);
		foreach ($paragraphs as $index => $paragraph) {
			if ( trim( $paragraph ) ) {
				$paragraphs[$index] .= $closing_p;
			}
			if ( $count_p == ($index + 1) ) {
				$paragraphs[$index] .= $ad_code;
			}
		}
		return implode( '', $paragraphs );
	}
	return $content;
}

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

Вверх!

Меню блога

Категории блога

Облако тегов