Почему виджет Taxonomy Filter в Elementor перестаёт работать после переноса и как это исправить

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).

Как это исправить: пошаговое руководство

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

  1. Заново привязать фильтр к циклу (самый эффективный способ) Зайдите в редактор Elementor на той странице, где не работает фильтр. Удалите существующий виджет Taxonomy Filter и добавьте его заново. В настройках нового фильтра в выпадающем списке «Selected Loop Grid» (Выбранный цикл) повторно выберите нужный Loop Grid. Это заставит фильтр записать актуальные ID.
  2. Проверьте настройки запроса у Loop Grid Откройте настройки вашего Loop Grid и в разделе «Query» (Запрос) убедитесь, что опция «Inherit Query» (Наследовать запрос) отключена (не стоит галочка). Фильтр работает только тогда, когда цикл использует собственный, независимый запрос.
  3. Проверьте конфликты с плагинами Временно отключите все плагины, не относящиеся к Elementor (особенно многоязычные и кастомные типы постов). Проверьте, заработал ли фильтр. Если да, включайте плагины по одному, чтобы найти виновника.
  4. Обновите постоянные ссылки Зайдите в админке WordPress в «Настройки» → «Постоянные ссылки» и просто нажмите «Сохранить изменения», ничего не меняя. Это сбрасывает правила перезаписи URL и иногда исправляет неожиданные роутинговые сбои.
  5. Продвинутый способ (с осторожностью) Если ничего не помогает и вы уверены, что дело в 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 – разработчики постепенно улучшают её стабильность.