Представляю вашему внимание несколько вариантов размещения рекламы в записях сайта WordPress. В сети есть очень хорошие варианты от Kama и Sosnovskij, но мне ни один из этих вариантов не подошел. Поэтому я их модефицировала для себя.
Вариант 1. Размещение рекламы в любом месте шаблона single.php с отсрочкой показа.
1 2 3 4 5 6 7 8 9 10 11 |
<?php $days=7; // через сколько дней, спустя даты публикации поста, показывать рекламу. $interval = 3600*24*$days; $currentdate = current_time( 'timestamp') ; $postdate = get_the_time('U'); $totaltime = $currentdate-$postdate; if( $totaltime>$interval) {?> КОД РЕКЛАМЫ <?php } else {} ?> |
Этот код можно разместить в любом месте шаблона sinle.php. Я создала этот код, чтобы размещать рекламу сразу после названия поста – тега the_title();. Переменная $days отвечает за количество дней, спустя которые начнется показ рекламы после публикации поста. Удобнее всего, по-моему, это 7 дней.
Вариант 2. Размещение рекламы после конкретного абзаца.
В этом коде придется вносить изменения в самый главный тег шаблона the_content. Поэтому будьте внимательны.
Для работы кода, нужно найти в шаблоне single.php
1 |
<?php the_content(); // Содержимое страницы ?> |
и заменить на
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
<?php $paragraphAfter= 1; //после какого абзаца отображать рекламу; $content = apply_filters('the_content', get_the_content()); $content = explode("</p>", $content); for ($i = 0; $i <count($content); $i++ ) { if ($i == $paragraphAfter) { ?> <div style="float:right;margin:0 0 10px 10px;"> КОД РЕКЛАМЫ </div> <?php } echo $content[$i] . "</p>"; } ?> |
Переменная $paragraphAfter определяет после какого параграфа вставлять рекламу.
Вариант 3. Размещение рекламы после конкретного абзаца с отсрочкой показа.
А вот и соединение двух предыдущих вариантов. Код показывает объявление после заданного абзаца с отсрочкой показа.
Найти в шаблоне single.php
1 |
<?php the_content(); // Содержимое страницы ?> |
и заменить на
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
<?php $paragraphAfter= 1; //после какого абзаца отображать рекламу; $content = apply_filters('the_content', get_the_content()); $content = explode("</p>", $content); for ($i = 0; $i <count($content); $i++ ) { if ($i == $paragraphAfter) { $days=7; // через сколько дней, спустя дату публикации поста, показывать рекламу. $interval = 3600*24*$days; $currentdate = current_time( 'timestamp') ; $postdate = get_the_time('U'); $totaltime = $currentdate-$postdate; if( $totaltime>$interval) { ?> КОД РЕКЛАМЫ <?php } else {} } echo $content[$i] . "</p>"; } ?> |
$paragraphAfter – определяет после какого параграфа вставлять рекламу;
$days – через сколько дней, спустя дату публикации поста, показывать рекламу.
Код блока от Kama
Вставляет рекламный блок в первый перенос строки или закрывающий тег
спустя определенное количество символов (задается в переменной $nu). Код размещается в файле function.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
/** * Вставляет рекламный блок в первый перенос строки или * закрывающий тег </p> спустя определенное количество * символов (задается в переменной $nu). */ function kama_content_advertise( $text ){ // убедимся что мы на отдельной странице if( ! is_singular() ) return $text; //спустя сколько символов искать перенос строки и вставлять рекламу? $nu = 400; //Код рекламы $adsense = <<<HTML <div style="float:right;margin:0 0 10px 15px;"> здесь рекламный код </div> HTML; // табы и пробелы в этой строке запрещены! // раскомментируйте, если нужно вставить блок сразу перед тегом <!--more--> # return str_replace('<!--more-->', $adsense.'<!--more-->', $text); return preg_replace('@([^^]{'.$nu.'}.*?)(\r?\n\r?\n|</p>)@', "\\1$adsense\\2", trim($text), 1); } add_filter('the_content', 'kama_content_advertise', -10); |
Статьи по теме:
- Определение родительской категории для дочерних в шаблоне wordpress – Post_is_in_descendant_category
- Редактирование поста с фронт-енда с помощью Advanced Custom Fields Pro
- Новый пост с фронт-енда с помощью Advanced Custom Fields Pro
- Размещение рекламы на WordPress
- Оформление формы входа для плагина Profile Builder