Как установить отсрочку показа popup при загрузке страницы в WordPress

Диагностика проблемы с мгновенным показом popup

Часто при добавлении popup на сайт WordPress он появляется сразу после загрузки страницы. Это может раздражать пользователей, особенно если popup содержит рекламу или подписку. Чтобы повысить удобство, часто нужно отложить показ всплывающего окна на несколько секунд или до определённого события.

Проверьте текущую реализацию popup. Если используется плагин, изучите его настройки — многие из них предлагают параметры задержки. Если popup создан вручную через JavaScript, скорее всего, срабатывает событие DOMContentLoaded или window.onload без задержки.

Пошаговое решение: как добавить задержку показа popup через JavaScript

1. Подготовка HTML для popup

Допустим, у вас есть базовая разметка popup, скрытая стилями:

<div id="my-popup" style="display:none;">
  <p>Подпишитесь на нашу рассылку!</p>
  <button id="close-popup">Закрыть</button>
</div>

2. Добавление скрипта с задержкой

Используйте setTimeout, чтобы отложить появление popup на 5 секунд:

document.addEventListener('DOMContentLoaded', function() {
  setTimeout(function() {
    var popup = document.getElementById('my-popup');
    if (popup) {
      popup.style.display = 'block';
    }
  }, 5000); // задержка 5000 мс = 5 секунд

  var closeBtn = document.getElementById('close-popup');
  if (closeBtn) {
    closeBtn.addEventListener('click', function() {
      document.getElementById('my-popup').style.display = 'none';
    });
  }
});

3. Интеграция в WordPress

Для правильного подключения скрипта в тему или плагин используйте wp_enqueue_script с зависимостью от jquery (если надо) и убедитесь, что скрипт загружается в футере:

function enqueue_delayed_popup_script() {
  wp_enqueue_script('delayed-popup', get_template_directory_uri() . '/js/delayed-popup.js', array(), null, true);
}
add_action('wp_enqueue_scripts', 'enqueue_delayed_popup_script');

Проверка результата после внедрения задержки

1. Очистите кэш браузера и кэш сайта (если используется кэш-плагин).

2. Откройте страницу, где должен показываться popup.

3. Убедитесь, что popup появляется только спустя 5 секунд после полной загрузки контента.

4. Проверьте кнопку закрытия — popup должен скрываться без перезагрузки.

Частые ошибки и как их исправить

  • Popup не появляется вовсе: Проверьте правильность ID в HTML и JavaScript. Убедитесь, что скрипт загружается и нет ошибок в консоли.
  • Popup появляется сразу, без задержки: Возможно, скрипт срабатывает до загрузки DOM. Используйте DOMContentLoaded или помещайте скрипт в футер.
  • Кнопка закрытия не работает: Проверьте, что обработчик события привязан после загрузки DOM. Можно использовать console.log для отладки.
  • Задержка слишком большая или маленькая: Измените значение в setTimeout (в миллисекундах) под нужды проекта.

Практические советы по производительности и безопасности

  • Минимизируйте и объединяйте JS-файлы, чтобы не увеличивать время загрузки.
  • Используйте localStorage или cookie, чтобы не показывать popup повторно одному и тому же пользователю после закрытия.
  • Если popup содержит форму, обязательно защитите её от CSRF с помощью nonce WordPress.

Пример кода с использованием localStorage для однократного показа popup

document.addEventListener('DOMContentLoaded', function() {
  if (!localStorage.getItem('popupShown')) {
    setTimeout(function() {
      var popup = document.getElementById('my-popup');
      if (popup) {
        popup.style.display = 'block';
      }
    }, 5000);
  }

  var closeBtn = document.getElementById('close-popup');
  if (closeBtn) {
    closeBtn.addEventListener('click', function() {
      document.getElementById('my-popup').style.display = 'none';
      localStorage.setItem('popupShown', 'true');
    });
  }
});

Сравнение способов реализации задержки показа popup

Метод Преимущества Недостатки Когда использовать
JavaScript setTimeout Простая реализация, не требует плагинов Требует базовых знаний JS, может конфликтовать с другими скриптами Для кастомных popup и легких сайтов
Настройки плагина popup Удобство настройки, часто поддерживает разные условия показа Может замедлять сайт, ограничена функциональность Для пользователей без опыта разработки
Использование localStorage или cookies Позволяет контролировать повторное появление popup Требует программирования, возможны проблемы с приватностью Для повышения UX и снижения раздражения
Как создать popup с автоматическим отключением при низкой производительности сайта в WordPress
23.04.2026
Как добавить анимацию в popup WordPress для улучшения UX
19.01.2026
Как создать выпадающее меню в WordPress с помощью JavaScript
20.11.2025
Как отладить и решить проблемы с показом popup из AJAX в WooCommerce
27.06.2026
Как отладить проблемы с показом popup в WordPress
06.02.2026