Как разместить рекламные баннеры Adsense в записях?
Для размещения рекламы Adsense существует множество плагинов, но ими вовсе необязательно пользоваться. Иногда бывает полезно разместить рекламные блоки вручную. Начнем с простого - добавления рекламы сразу после текста записи. Для этого вам необходимо добавить в файл functions.php вашей темы следующий код:
//вставка рекламы adsense после текста записи start function wph_add_adsense1($content) { if (!is_single()) return $content; $adsense1 = ' тут ваш скрипт эдсенса '; return $content.$adsense1; } add_filter('the_content', 'wph_add_adsense1'); //вставка рекламы adsense после текста записи end |
Для размещения рекламы до контента записи (после заголовка) используйте код:
//вставка рекламы adsense до текста записи start function wph_add_adsense2($content) { if (!is_single()) return $content; $adsense2 = ' тут ваш скрипт эдсенса '; return $adsense2.$content; } add_filter('the_content', 'wph_add_adsense2'); //вставка рекламы adsense до текста записи end |
Рекламу можно разместить после тега <!--more-->:
//вставка рекламы adsense после тега more start function wph_add_adsense3($content) { if (!is_single()) return $content; $adsense3 = ' тут ваш скрипт эдсенса '; $content = get_post_field('post_content', get_the_ID()); $content_parts = get_extended($content); return $content_parts['main'] . $adsense3 . $content_parts['extended']; } add_filter('the_content', 'wph_add_adsense3', 1); //вставка рекламы adsense после тега more end |
Помните, что если тега <!--more--> в записи нет, то реклама будет выведена после всего текста записи. Код можно модернизировать, чтобы не выводить рекламу при отсутствии в записи тега <!--more-->:
//вставка рекламы adsense после тега more start function wph_add_adsense3($content) { if (!is_single() or !has_more()) return $content; $adsense3 = ' тут ваш скрипт эдсенса '; $content = get_post_field('post_content', get_the_ID()); $content_parts = get_extended($content); return $content_parts['main'].$adsense3.$content_parts['extended']; } add_filter('the_content', 'wph_add_adsense3', 1); //вставка рекламы adsense после тега more end //условный тег проверки more в записи start function has_more() { global $post; if (empty($post)) return; return (bool) preg_match('/<!--more(.*?)?-->/', $post->post_content); } //условный тег проверки more в записи end |
Иногда может быть необходимо вывести рекламу после первого или второго параграфа записи, для этого используйте такой код:
//добавление рекламы после указанного числа параграфов start function wph_add_adsense4($content) { if (!is_single()) return $content; $adsense4 = ' тут ваш скрипт эдсенса '; $show_after_p = 1; //число абзацев $result = ''; if(substr_count($content, '<p>') > $show_after_p) { $paragraphs = explode("</p>", $content); $p_count = 1; foreach($paragraphs as $paragraph) { $result .= $paragraph; if($p_count == $show_after_p) {$result .= $adsense4;} $p_count++; } } return $result; } add_filter('the_content', 'wph_add_adsense4', 99); //добавление рекламы после указанного числа параграфов end |
Если необходимо считать параграфы с конца, то используйте такой код:
//добавление рекламы после указанного числа параграфов с конца start function wph_add_adsense5($content) { if (!is_single()) return $content; $adsense5 = ' тут ваш скрипт эдсенса '; $show_after_p = 2; //число абзацев $all_p = substr_count($content, '<p>'); $result = ''; if($all_p > $show_after_p) { $paragraphs = explode("</p>", $content); $p_count = 1; foreach($paragraphs as $paragraph) { $result .= $paragraph; if($p_count == $all_p-$show_after_p) {$result .= $adsense5;} $p_count++; } } else { return $content; } return $result; } add_filter('the_content', 'wph_add_adsense5', 99); //добавление рекламы после указанного числа параграфов с конца end |
Если в этом коде установить переменную $show_after_p = 1, то реклама всегда будет выводиться перед последним параграфом записи.
Все приведенные выше примеры выводят рекламу только на страницах одиночных записей. Используйте дополнительные условные теги, если, скажем, для записей разных рубрик нужно выводить рекламные баннеры от разных рекламных сетей. Самый простейший пример:
//вставка рекламы после текста записи в зависимости от рубрики start function wph_add_reklama($content) { if (!is_single()) return $content; $reklama = ""; if (in_category(array(1,2,3,4,5))) { $reklama = ' тут ваш скрипт эдсенса '; } if (in_category(array(6,7,8,9,10))) { $reklama = ' тут ваш скрипт директа '; } return $content.$reklama; } add_filter('the_content', 'wph_add_reklama'); //вставка рекламы после текста записи в зависимости от рубрики end |
Если у вас есть какие-то вопросы - пишите в комментариях, я вам обязательно постараюсь помочь.
для РСЯ как полагаю эти коды не годятся? мне надо рся разместить, недалеко от заголовка, где-то на втором абзаце бы.
У меня и коды RTB от РСЯ работают.
Александр, здравствуйте! У меня на сайте есть несколько коротких постов. Есть потребность отменить в этих постах показ рекламы после абзацев и в середине поста, вставив в пост шорткод. Что нужно добавить в коды вставки рекламы?
А как убрать показ рекламы с нескольких записей.
Искренняя благодарность Вам за полезный и отзывчивый ресурс.
Здоровья Вам и Вашим близким!
С наступающим Вас Новым Годом!
Желаю здоровья и удачи во всём.
Если Вас не затруднит, не могли бы Вы подсказать, насколько оптимально написана функция, которая выводит рекламный блок до основного контента и после него.
Функция работает исправно, но я не программист, посему опасаюсь «корявости кода».
function insert_rtb($content) {
if (is_single()) {
$rtb1 = ‘тут код блока № 1’;
$rtb2 = ‘тут код блока № 2’;
}
return $rtb1.$content.$rtb2;
}
add_filter(‘the_content’, ‘insert_rtb’);
Заранее Вам благодарен!