Почему виджет Taxonomy Filter в Elementor перестаёт работать после переноса и как это исправить
Содержание
Виджет Taxonomy Filter в Elementor – мощный инструмент, но он очень чувствителен к переносу. Проблема чаще всего не в том, что контент потерялся, а в том, что его работа завязана на динамических, невидимых ID и ссылках, которые при миграции неизбежно меняются.
Рассмотрим основные причины и способы решения.
Главная причина: слетают внутренние идентификаторы
Это самая распространённая и скрытая причина. Taxonomy Filter привязывается к конкретному циклу (Loop Grid) через уникальный внутренний ID. Когда вы копируете страницу или переносите сайт:
- На новой странице генерируется новый ID для цикла.
- В новой базе данных ID терминов таксономии (Term ID) могут не совпадать с теми, что были на исходном сайте.
В итоге фильтр помнит старые, теперь недействительные ID и не может соединиться ни с нужным циклом, ни с правильными категориями.
Дополнительные факторы, мешающие работе
Помимо ID, на работу фильтра при переносе могут повлиять:
- Несовместимые плагины – особенно многоязычные (WPML, Polylang) или плагины для пользовательских типов записей (например, Pods). Они могут искажать запросы фильтра.
- Экспериментальный статус функции – на данный момент этот виджет находится в альфа-версии, поэтому сам по себе нестабилен, и миграция может спровоцировать скрытые ошибки.
- Неправильная настройка цикла – если у Loop Grid включена опция «Наследовать запрос» (Inherit Query), фильтр не будет работать. При переносе эта связь может нарушиться.
- Ошибки прав доступа или AJAX – если в консоли браузера видна ошибка «400 Bad Request», это часто говорит о проблемах с правами или неверных параметрах запроса (например, недействительный widget_id).
Как это исправить: пошаговое руководство
Попробуйте следующие способы в указанном порядке – чаще всего первый же решает проблему.
- Заново привязать фильтр к циклу (самый эффективный способ) Зайдите в редактор Elementor на той странице, где не работает фильтр. Удалите существующий виджет Taxonomy Filter и добавьте его заново. В настройках нового фильтра в выпадающем списке «Selected Loop Grid» (Выбранный цикл) повторно выберите нужный Loop Grid. Это заставит фильтр записать актуальные ID.
- Проверьте настройки запроса у Loop Grid Откройте настройки вашего Loop Grid и в разделе «Query» (Запрос) убедитесь, что опция «Inherit Query» (Наследовать запрос) отключена (не стоит галочка). Фильтр работает только тогда, когда цикл использует собственный, независимый запрос.
- Проверьте конфликты с плагинами Временно отключите все плагины, не относящиеся к Elementor (особенно многоязычные и кастомные типы постов). Проверьте, заработал ли фильтр. Если да, включайте плагины по одному, чтобы найти виновника.
- Обновите постоянные ссылки Зайдите в админке WordPress в «Настройки» → «Постоянные ссылки» и просто нажмите «Сохранить изменения», ничего не меняя. Это сбрасывает правила перезаписи URL и иногда исправляет неожиданные роутинговые сбои.
- Продвинутый способ (с осторожностью) Если ничего не помогает и вы уверены, что дело в ID, можно попробовать исправить это на уровне кода (но имейте в виду: это изменение затронет ядро плагина и будет утеряно при обновлении Elementor Pro).
- Откройте файл
/wp-content/plugins/elementor-pro/modules/loop-filter/data/endpoints/refresh-loop.php. - Найдите функцию
is_widget_id_valid()и временно ослабьте или закомментируйте проверку валидности widget ID. - Обязательно сделайте резервную копию файла перед правкой!
- Откройте файл
Резюме
Главный принцип восстановления работы Taxonomy Filter после переноса – заново установить связь между фильтром, циклом и таксономиями. В подавляющем большинстве случаев достаточно удалить и снова добавить фильтр, выбрав правильный цикл.
Также настоятельно рекомендую всегда делать резервную копию базы данных перед переносом сайта – это позволит легко откатиться в случае проблем.
Имейте в виду, что функция пока экспериментальная, поэтому следите за обновлениями Elementor – разработчики постепенно улучшают её стабильность.






