## Реклама в тексте статьи WordPress Лучшее в книге — это то, что она не прерывается на самом интересном месте для вставки рекламы. ### Вставка рекламы в текст поста Хочу предложить удобный способ вставки рекламного блока в текст статьи на WordPress. Например, вы можете вставить блок рекламы Google AdSense или Яндекс.Директ. Возможно, вы сталкивались с тем, как вставлять рекламный блок после тега
<!--more-->
. Но что делать, если автор сайта этот тег не использует? Как тогда добавить рекламу на все страницы? На этот вопрос у меня есть ответ — смотрите код ниже. ### Код для вставки рекламного блока Вот пример кода, который решает данную задачу:<?php /** * Вставляет рекламный блок в первом переносе строки или перед первым закрывающим * тегом <code></p></code> или <code></table></code> после определённого числа символов. * * @param number $nu После какого количества символов искать перенос строки и вставлять рекламу? * * version: 0.3 */ add_filter( 'the_content', 'kama_content_advertise', -10 ); function kama_content_advertise( $text, $num = false ) { if( ! is_singular() ){ return $text; // Проверяем, что это одиночный пост или страница } if( ! $num ){ $num = 400; // Устанавливаем значение по умолчанию } ob_start(); ?> <div class="kama-inline-ads" style="float:right; margin:0 0 1em 1.5em;"> код рекламы здесь </div> <?php $adsense = ob_get_clean(); return preg_replace( '~[^^]{' . $num . '}.*?(?:r?nr?n|</p>|</table>)~su', "${0}$adsense", trim( $text ), 1 ); }#### Как использовать код
Замените строку "код рекламы здесь" на ваш реальный рекламный код.
Данный код вставляет рекламный блок в первом найденном переносе строки или закрывающем теге
</p>
или</table>
после указанного количества символов (в данном случае — 400).### Вставка рекламы перед тегом MORE
Если вам нужно вставить рекламный блок перед тегом
<!--more-->
, раскомментируйте предпоследнюю строку в коде:```php
# return str_replace('', $adsense.'', $text);Реклама только для старых постов
Если вы хотите показывать рекламу только для постов, которым, например, 7 дней, вы можете использовать следующий код:
add_filter('the_content', 'kama_content_advertise', -10);
function kama_content_advertise( $text ){
$days = 7; // Через сколько дней после публикации показывать рекламу.
$nu = 400; // После какого количества символов искать перенос и вставлять рекламу?$offset = (int) time() - (int) strtotime($GLOBALS['post']->post_date); if($offset < (3600*24*$days) ) return $text; // Проверяем дату публикации // Код рекламы $adsense = '
код рекламы здесь'; return preg_replace('@([^^]{'.$nu.'}.*?)(r?nr?n|)@', "1$adsense2", trim($text), 1);}
Заключение
Такой способ вставки рекламы будет удобен, если вы не хотите отвлекать своих постоянных читателей рекламой в новых статьях. В конце концов, именно они первыми приходят, чтобы прочитать ваше следующее произведение!