Гид по технологиям

Как автоматически вставлять рекламу в середину записи WordPress без плагина

5 min read WordPress Обновлено 06 Nov 2025
Автоматически вставить рекламу в записи WordPress
Автоматически вставить рекламу в записи WordPress

К чему подходит этот метод

  • Автоматическая вставка рекламных блоков в тело записи (например, после 2–3‑го абзаца).
  • Вставка подписной формы, CTA или любого HTML/JS-кода между абзацами.
  • Подходит, если не хочется править тысячи постов вручную и не хотите ставить плагин.

Важно: метод предполагает редактирование кода темы (functions.php). Если вы не уверены — используйте staging или попросите разработчика.

Шаги (коротко)

  1. Откройте файл темы functions.php в текстовом редакторе.
  2. Вставьте исправленный сниппет PHP (ниже).
  3. Замените метку INSERT_AD_CODE_HERE на HTML/JS вашей рекламы (см. рекомендации по экранированию).
  4. Сохраните файл и загрузите на сервер.
  5. Протестируйте на нескольких записях и на стенде.

Исправленный рабочий код (вставьте в конец functions.php)

add_filter('the_content','mte_add_incontent_ad');
function mte_add_incontent_ad($content){
    // Выполняем только для одиночной записи на фронтенде
    if( !is_single() || is_admin() ){
        return $content;
    }

    // Маркер разбиения — закрывающий тег абзаца
    $closing_p = '

'; // Разбиваем содержимое на части, удаляя маркер $content_block = explode($closing_p, $content); // Если есть третий абзац (индекс 2), добавляем туда код рекламы if( isset($content_block[2]) && trim($content_block[2]) !== '' ){ // Вместо этой метки вставьте ваш HTML/JS код $ad_html = "INSERT_AD_CODE_HERE"; // можно использовать nowdoc/heredoc для удобства // Добавляем код в конец третьего фрагмента $content_block[2] .= $ad_html; } // Склеиваем обратно, вставляя маркер между частями $content = implode($closing_p, $content_block); return $content; }

Примечание: код использует explode(‘

’, …) — это наиболее универсальный способ вставки между абзацами, так как в WP обычно абзацы генерируются тегом

.

Как безопасно вставить ваш рекламный код

  • Лучше всего поместить HTML/JS рекламы в PHP-переменную используя nowdoc (без необходимости экранировать кавычки):
$ad_html = <<<'AD'
AD;
  • Если вы предпочитаете одну строку, убедитесь, что кавычки экранированы. Но nowdoc проще и безопаснее.

Пояснение работы функции

  1. Фильтр the_content берёт весь HTML записи.
  2. explode(‘

    ’, $content) разбивает содержимое по закрывающему тегу абзаца.
  3. Если существует нужный фрагмент (по умолчанию индекс 2 — третий абзац), мы дописываем в конец этого фрагмента рекламный HTML.
  4. implode возвращает сборный HTML обратно.

Это простой и понятный «разрыв‑вставка» — вставка происходит непосредственно между абзацами, не трогая структуру других элементов.

Что можно настроить

  • Позиция вставки: замените $content_block[2] на $content_block[1] (второй абзац) или другое значение. Помните: нумерация массива начинается с 0.
  • Маркер разбиения: вместо ‘

    ’ можно использовать любой текст/маркер, который надёжно встречается в вашем контенте (например, специфический блок или HTML‑комментарий).
  • Условие применения: меняйте is_single() на is_singular(‘post’) или добавляйте проверки по типу записи, категории, роли пользователя и т. п.

Важные заметки и подводные камни (когда метод может не работать)

  • Если тема или плагин уже сильно модифицирует the_content (фильтры, page builders, Gutenberg-перегрузки), explode(‘

    ’) может дать неожиданные результаты.
  • Контент, созданный через блоки (Gutenberg) может иметь сложную вложенную структуру — блоки могут не содержать привычных

    .

  • Если пост короткий (меньше нужного количества абзацев) — вставка не произойдёт.
  • Если у вас много кастомных HTML‑блоков, лучше использовать более строгие правила (регулярные выражения или парсер DOM).

Важно: перед применением на продакшне протестируйте на копии сайта.

Альтернативные подходы (когда не править functions.php)

  • Плагины для вставки рекламы (Ad Inserter, Advanced Ads) — удобны, имеют GUI и правила показа.
  • Шорткоды в тексте — гибко, но требуют массового редактирования существующих статей.
  • Шаблонные правки theme single.php — вставка в шаблон после the_content(), если структура тем позволяет.
  • Использование хука wp_footer или action в нужной точке темы, если требуется фиксированное позиционирование.

Рекомендации по безопасности и производительности

  • Не вставляйте сторонние скрипты без ревью: они могут снизить скорость или нарушить политику безопасности.
  • Если рекламный скрипт загружает внешние ресурсы, отложите загрузку (async/defer) или используйте отложенные вызовы, чтобы не замедлять рендер страницы.
  • Храните трекинг и приватные ключи вне кода темы (например, в настройках или через wp-config, если нужно).

Критерии приёмки (тесты, которые стоит выполнить)

  • На тестовой среде открыты минимум 5 разных записей: короткая, средняя, длинная, содержащая HTML‑блоки и созданная Gutenberg.
  • В каждой записи проверено, что реклама корректно отображается в ожидаемом абзаце и не ломает верстку.
  • Проверено отображение на мобильных и десктоп версиях.
  • Убедились, что админка и редактор не пострадали (is_admin() блокирует вставку в админке).

Role‑based checklist (кто что должен сделать)

  • Разработчик: вставить код, настроить позицию и поставить nowdoc для ad_html.
  • Тестировщик: пройти чек‑лист критериев приёма и проверить страницы на ошибки JS/стили.
  • Маркетолог/AdOps: предоставить проверенный рекламный код и указать, на каких типах страниц показывать.

Когда этот метод не подходит (контрпримеры)

  • Если вы используете визуальные билдеры, которые сами рендерят сложные блоки: лучше плагин или встроенный блок.
  • Если важна тонкая логика показа (гео, A/B тесты, частые изменения формата): используйте профессиональные рекламные решения и плагин.

Миграция и совместимость

  • Работает в большинстве версий PHP 5.6+ и WordPress 4.7+, но рекомендуется PHP 7.2+ и современные WP.
  • При смене темы код нужно перенести в functions.php новой темы (или лучше — вынести в child theme или небольшой плагин, чтобы не потерять при обновлении темы).

Краткий чек‑лист перед выкладкой на прод

  • Сделан бэкап functions.php.
  • Код протестирован на стенде и в нескольких записях.
  • Реклама корректно загружается и не вылетает в консоли JS.
  • Подумать о мобильной адаптации (ширина/высота баннера).

Итог

Этот способ — быстрый и контролируемый метод автоматической вставки HTML/рекламы между абзацами записей WordPress, особенно полезный при большом количестве существующих статей. Он прост, но требует осторожности: всегда тестируйте и помните о совместимости с визуальными редакторами и плагинами.

Важно: если вам нужна более гибкая логика (ротация объявлений, таргетинг, A/B), рассмотрите проверенные плагины для управления рекламой.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Троян Herodotus: как он работает и как защититься
Кибербезопасность

Троян Herodotus: как он работает и как защититься

Включить новое меню «Пуск» в Windows 11
Windows руководство

Включить новое меню «Пуск» в Windows 11

Панель полей сводной таблицы в Excel — руководство
Excel

Панель полей сводной таблицы в Excel — руководство

Включить новое меню «Пуск» в Windows 11
Windows 11

Включить новое меню «Пуск» в Windows 11

Дубликаты Диспетчера задач в Windows 11 — как исправить
Windows

Дубликаты Диспетчера задач в Windows 11 — как исправить

История просмотров Reels в Instagram — как найти
Instagram

История просмотров Reels в Instagram — как найти