Flector

Как разместить рекламу в середине записи?

Adsense

Не так давно я рассматривал различные способы добавления рекламы (от Adsense и других рекламных систем) в контент записи. Были приведены примеры добавления рекламных баннеров в начале записи, в конце записи, после определенного параграфа и др. Единственное, что там не было рассмотрено - это вывод рекламы в середине записи. Вывод рекламы в середине контента записи это довольно востребованная у пользователей функция, поэтому приведу пример фильтра, которым вы можете добавить свой рекламный баннер в середину записи. Для этого вам необходимо добавить в файл functions.php вашей темы следующий код:

//добавляем рекламу в середину записи start
function wph_add_adsense_in_middle($content) {
    if ( !is_single() ) return $content;
 
    $content = explode("</p>", $content);
    $middlep = round( (count($content) - 1) / 2 );
    $new_content = '';
 
    for ($i = 0; $i < ( count($content)-1 ); $i++) {
 
        $new_content .= $content[$i] . "</p>";
 
        if ($i + 1  == $middlep) {
            $new_content .= '<p>';
            $new_content .= 'тут ваш скрипт эдсенса';
            $new_content .= '</p>';
        } 
    }
    return $new_content;
} 
add_filter('the_content', 'wph_add_adsense_in_middle'); 
//добавляем рекламу в середину записи end

Если быть совсем уж точным, то реклама не будет размещена именно в середине записи, так как середина тут лишь примерная, по числу параграфов. Скажем, если в записи 8 параграфов, то реклама будет размещена после 4 параграфа. Если 9 параграфов - то реклама будет вставлена после 5 параграфа (округление в большую сторону). Количество символов в параграфах не учитывается.


Комментарии (2 комментария)
  1. Здравствуйте!

    Помогите, пожалуйста, у меня проблема при использовании этого кода. Случайно заметил. Не выводится контент после последнего абзаца на странице.

    То есть, если структура записи такая:

    1
    2
    3
    4
    5
    6
    7
    
    <h1>Заголовок</h1>
    <p>текст</p>
    <p>текст</p>
    <ol>
    <li>текст</li>
    </ol>
    <p>текст</p>

    то тег ol и весь контент в нем не выводится, запись завершается последним абзацем.

    Добавляем после тега ol абзац

    1
    2
    3
    4
    5
    6
    7
    
    <h1>Заголовок</h1>
    <p>текст</p>
    <p>текст</p>
    <ol>
    <li>текст</li>
    </ol>
    <p>текст</p>

    все нормально выводится.

    • Ошибся. Первый пример кода такой:

      1
      2
      3
      4
      5
      6
      
      <h1>Заголовок</h1>
      <p>текст</p>
      <p>текст</p>
      <ol>
      <li>текст</li>
      </ol>
Написать комментарий

Для вставки кода воспользуйтесь кнопкой "Код". Используйте предпросмотр!