Перейти до основного вмісту
Facet Api виводить порожні фільтри після видалення терміну таксономії - вирішення проблеми

У Друпал є проблема: при використанні Facet Filters, якщо видалити якийсь термін таксономії, то Search Api у виведених фасетних фільтрах буде відображати видалений термін, але вже не як найменування, а його ID (колишній ID)). При натисканні на такий фільтр, користувач, швидше за все, отримає помилку на сайті.

Наприклад, є термін таксономії, і його фасетний фільтр "Харків", який нам потрібно видалити.

пример активного фасета

Видаляємо термін таксономії "Харків", отримуємо таке:

пример пустого фасетного фильтра

Відбувається це тому, що при видаленні терміну таксономії зв'язку матеріалу з терміном залишаються в базі даних. Переіндексація пошукового сервера при цьому не допомагає. 

Вирішення помилки

Вирішення помилки виявляється досить просте - установка модуля Field reference delete. Цей модуль автоматично видаляє всі зв'язки сутностей, яких не існує. Модуль не потребує жодного попереднього налаштування.

У нашому випадку ставимо цей модуль, видаляємо непотрібний термін таксономії, переіндексуємо потрібний пошуковий індекс у Search Api – profit! Порожнього фасета більше нема.

primer_faseta_2.png

ПІдписка

Об авторе

Автор цього блогу. У SEO понад 10 років. Окрім SEO цікавлюся всім, що пов'язано з технологіями та заробітком в інтернеті про що й стараюся ділитися з читачами.