Итак, Вы раскрутили свой сайт до космических пределов и стали довольны собой. Люди счастливы, читая Ваш контент. Они безмерно благодарны за Вашу работу и не перестают благодарить Вас в комментариях. А ещё ежедневно делятся Вашими записями с друзьями в социальных сетях, на форумах, в личных переписках. Всё здорово.

Кроме одной детали — Вашему организму, к сожалению, требуется питание для поддержания жизненных функций. А продукты добываются деньгами, которые не дают за повышенный уровень чувства собственной важности. Реальность такова, что как бы Вам не хотелось иметь девственно чистый и непорочный сайт, капиталистический уклад общества заставит ступить на порог дома ростовщика. Либо окунуть своё творение в смердящий океан рекламы, дабы зачерпнуть средств на пропитание. Ну а я расскажу как расставить рекламные блоки по тексту без плагинов.

Для начала сам скрипт:
add_filter( 'the_content', 'ad_after_paragraph' );
function ad_after_paragraph( $content ) {
global $post;
$insert = array();
#Рекламные блоки и условия их вывода
if ( is_singular( 'post' ) ) {
$insert[ rand( 1, 4 ) ] = 'ТЕКСТ РЕКЛАМНОГО БЛОКА 1'; //Блок будет вставлен между первым и четвёртым элементом
$insert[ rand( 5, 9 ) ] = 'ТЕКСТ РЕКЛАМНОГО БЛОКА 2'; //Блок будет вставлен между пятым и девятым элементом
$insert[ 2 ] = 'ТЕКСТ РЕКЛАМНОГО БЛОКА N'; //Блок будет выведен после второго элемента, без рандомизации
} 
if ( ! empty( $insert ) ) {$content = insert_after_paragraph( $insert, $content );}return $content;}
function insert_after_paragraph( $insert = null, $content = null ) {
if ( ! is_string( $content ) ) {return false;}
if ( ! is_array( $insert ) ) {return $content;}
$closing_tag = '</p>'; //выбираем закрывающий тег, после которого выводится рекламный блок. Это может быть любой html элемент

#Здесь происходит магия
$paragraphs = explode( $closing_tag, $content );
foreach ( $paragraphs as $index =&gt; $paragraph ) {
if ( trim( $paragraph ) ) {
$paragraphs[$index] .= $closing_tag;
}
if ( array_key_exists( $index + 1, $insert ) ) {$paragraphs[$index] .= $insert[ $index + 1 ];}}
return implode( '', $paragraphs );
} 

В строке №6 я указываю условие, при котором скрипт будет обрабатывать контент. Он предназначен для вставки рекламного кода внутри поста, поэтому он не подходит для страниц архивов.

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

Строки 7-9 показывают примеры вставки кода. Внутри квадратных скобок мы указываем порядковые номера тегов от начала текста, после которых будет вставляться наш код. Команда rand позволяет в случайном порядке вставлять рекламу, тем самым, не давая привыкнуть к его расположению читателей.

Если Вы укажите большие порядковые числа тегов (например после 20-го), то ошибки это не вызовет, блок просто не будет показан. Это очень удобно, позволяет вставлять больше рекламы только на больших статьях.

На строке №15 мы указываем то, от чего зависит весь скрипт. Html тег, который считаем в тексте. Он может быть любым – p, span, h1-h6 и т.д.

В последней части скрипта разбираться не обязательно.

Собственно, всё. Добавляем сей шедевр программистской деятельности в файл functions.php Вашей темы и он начнёт работать.

Оставить комментарий