WPPopup

My Popup не показывается в админке после очистки кэша: как проверить конфликт и вернуть отображение

Сценарий знакомый: на сайте попапы работают, а в админке My Popup после очистки кэша перестает открываться или интерфейс настроек грузится пустым блоком. Чаще всего проблема не в самом плагине, а в том, как тема, кэширующий плагин или оптимизатор скриптов обрабатывают wp-admin, admin-ajax.php и подключение JS/CSS.

Ниже — практический разбор без лишней теории: как быстро локализовать причину, что проверить в первую очередь и как вернуть нормальную работу без отключения всего сайта.

Что именно ломается после очистки кэша

Очистка кэша сама по себе ничего не «портит», но после нее часто пересобираются минифицированные файлы, сбрасываются исключения и заново применяются правила оптимизации. Если My Popup в админке использует AJAX-запросы, локальные скрипты или стили, они могут попасть под:

  • объединение JS в один файл с ошибкой порядка загрузки;
  • отложенную загрузку скриптов в админке;
  • кеширование HTML-ответов для wp-admin или admin-ajax.php;
  • конфликт с плагином очистки/оптимизации, который не различает фронтенд и админку.

Если интерфейс My Popup открывается пустым, сначала не ищите проблему в настройках плагина. Сначала проверьте, доходит ли до браузера нужный JavaScript и не падает ли он с ошибкой.

Диагностика: где искать поломку

1. Проверить консоль браузера

Откройте админку, где не показывается My Popup, и посмотрите Console в DevTools. Типовые признаки:

  • Uncaught ReferenceError — скрипт вызывается раньше, чем загрузился зависимый файл;
  • 403 или 404 на admin-ajax.php или файл плагина;
  • blocked by CSP — политика безопасности режет inline-скрипт;
  • jQuery is not defined — оптимизатор сломал порядок подключения.

2. Сверить сетевые запросы

Во вкладке Network проверьте, уходят ли запросы к admin-ajax.php и возвращают ли они корректный JSON или HTML-страницу ошибки. Если вместо JSON приходит редирект на логин или HTML с предупреждением PHP, плагин может не отрисовать интерфейс.

3. Временно отключить оптимизацию только для админки

Если у вас включены Autoptimize, LiteSpeed Cache, WP Rocket, Perfmatters или похожие решения, проверьте, не применяют ли они:

  • defer/delay для скриптов в админке;
  • minify JS для /wp-admin/;
  • кеширование AJAX-ответов;
  • удаление jquery-migrate или объединение jQuery с другими файлами.

В нормальной конфигурации оптимизация должна затрагивать фронтенд, а не панель управления.

Пошаговое решение без лишнего риска

Шаг 1. Исключить админку и AJAX из кеширования

Если кэш-плагин позволяет задавать исключения, добавьте минимум два правила: не кешировать /wp-admin/ и не трогать /wp-admin/admin-ajax.php. Для некоторых серверных кешей этого достаточно, чтобы My Popup снова начал нормально открываться в панели.

Если вы управляете исключениями через код, можно добавить заголовки для AJAX-ответов, чтобы их не пытались кешировать промежуточные слои:

<?php
add_action('admin_init', function () {
    if (defined('DOING_AJAX') && DOING_AJAX) {
        nocache_headers();
    }
});

Это не лечит конфликт, но помогает убрать лишний слой проблем, когда AJAX-ответы начинают вести себя как статические страницы.

Шаг 2. Отключить минификацию для файлов плагина

Если My Popup подключает отдельные JS/CSS-файлы, добавьте их в исключения минификации и объединения. Обычно это делается по имени файла или по пути в /wp-content/plugins/. После этого очистите кэш еще раз и проверьте админку повторно.

Если в настройках оптимизатора есть отдельный режим для wp-admin, выключите его полностью. Админка WordPress редко выигрывает от агрессивной оптимизации, а ломается от нее довольно часто.

Шаг 3. Проверить конфликт с другим плагином

Самый надежный способ — временно отключить плагины оптимизации и кеша, оставить только My Popup и проверить поведение. Если проблема исчезла, включайте плагины по одному. Так вы быстро найдете конкретный конфликтующий слой.

Если отключать все неудобно, начните с:

  • плагинов кеша;
  • плагинов минификации и отложенной загрузки;
  • плагинов безопасности, которые фильтруют AJAX;
  • плагинов, меняющих поведение jQuery или отключающих стандартные скрипты WordPress.

Шаг 4. Проверить права и доступ к файлам

После очистки кэша иногда всплывает не сама причина, а следствие: плагин пытается записать временный файл, но не может. Проверьте права на wp-content/uploads и на каталог плагина, если My Popup хранит там служебные данные. Также убедитесь, что в wp-config.php не включены жесткие ограничения, мешающие записи.

Когда помогает правка кода, а не только настройки

Если вы разработчик и хотите точечно исключить админку из лишней оптимизации, можно принудительно отключить подключение некоторых фронтенд-скриптов в панели управления. Это полезно, когда тема или кастомный код добавляют свои файлы во все разделы сайта.

<?php
add_action('admin_enqueue_scripts', function () {
    wp_dequeue_script('theme-frontend');
    wp_dequeue_style('theme-frontend');
}, 100);

Важно: не снимайте очередью скрипты наугад. Сначала посмотрите их handle в исходнике страницы или через инструменты разработчика. Иначе можно случайно убрать зависимость, без которой My Popup тоже перестанет работать.

Если проблема именно в AJAX-обработчике плагина, полезно проверить, не блокирует ли сервер запросы к admin-ajax.php. Иногда это делает WAF, модуль безопасности или правило в Nginx/Apache. В таком случае в логах будут 403/406/500, а в браузере — пустой интерфейс без явной ошибки.

Как проверить, что решение сработало

После каждого изменения проверяйте не только визуально, но и технически. Минимальный чек-лист такой:

  • страница настроек My Popup открывается без пустого блока;
  • в консоли браузера нет ошибок JavaScript;
  • admin-ajax.php отвечает без 403/404/500;
  • кнопка сохранения настроек отрабатывает без перезагрузки с ошибкой;
  • после повторной очистки кэша проблема не возвращается.

Если есть доступ к журналам сервера, посмотрите их сразу после воспроизведения ошибки. Это особенно полезно, когда в браузере тишина, а на сервере есть предупреждение PHP или блокировка модулем безопасности.

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

Кеш очищают, но исключения не настраивают

В итоге админка снова попадает под оптимизацию. Решение простое: отдельно исключить /wp-admin/ и admin-ajax.php, а не только очистить кэш.

Отключают минификацию только для фронтенда

Некоторые плагины применяют правила ко всему сайту, включая панель управления. Если My Popup ломается именно в админке, проверьте глобальные настройки, а не только фронтенд-режим.

Сразу винят сам плагин

На практике проблема часто в конфликте с кэшем, а не в My Popup. Поэтому сначала воспроизведите ошибку на чистом наборе: плагин + стандартная тема + без оптимизации.

Игнорируют консоль и Network

Без этих двух вкладок вы действуете вслепую. Ошибка может быть в одном не загруженном файле или в одном неправильном ответе AJAX, и это видно за минуту.

Что выбрать: настройка, код или замена плагина

ПодходКогда подходитМинус
Настройки кеш-плагинаЕсли конфликт связан с минификацией или кешированием админкиНужно аккуратно искать исключения
Код в теме или mu-pluginЕсли нужно точечно убрать кеширование AJAX или лишние скриптыТребует контроля при обновлениях
Отключение конфликтующего плагинаЕсли конкретный оптимизатор ломает админкуМожет снизить скорость фронтенда

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

Не отключайте кеширование глобально ради одной проблемы. Лучше сузить исключения до админки и AJAX. Это сохранит производительность сайта и не создаст лишнюю нагрузку на сервер.

Если используете My Popup в связке с плагинами безопасности, проверьте, не режут ли они запросы к admin-ajax.php и REST API. Иногда безопаснее добавить точечное исключение, чем ослаблять защиту целиком.

Для сайтов с активной оптимизацией полезно держать отдельный список исключений для:

  • скриптов My Popup;
  • admin-ajax.php;
  • страниц /wp-admin/;
  • файлов, которые плагин подгружает динамически.

Если вам нужно не только чинить конфликты, но и системно чистить сайт от дублей, мусора и лишних настроек, у WPShop есть Clearfy Pro: он решает часть технических задач вокруг SEO и оптимизации. Но в случае с My Popup все равно сначала разбирайте конкретный конфликт, а не меняйте стек целиком.

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

×

Увеличьте продажи!

Скидка на
My Popup!

-15%
плагин для WordPress

Успей купить ⋙