Страница поиска Algolia и WordPress внезапно не работает, консоль показывает Uncaught typeError

Я создал страницу поиска с помощью WordPress и Algolia Search, и она отлично работала в течение нескольких месяцев, но вдруг я получаю следующую ошибку:

Uncaught TypeError: невозможно прочитать свойство «matchedWords» неопределенного

Фасетные фильтры больше не работают, и результаты поиска не отображаются.

Рассматриваемая страница: https://habyts.com/activities-for-kids

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

Плагин Algolia WordPress был обновлен несколько дней назад до версии 2.3.0, но я загружал страницу поиска несколько раз после обновления, и она работала, всего через день или около того после обновления она сломалась и начала показывать консоль. ошибка.

Пожалуйста помоги!

Заранее спасибо.


person Andy Buchanan    schedule 29.06.2017    source источник


Ответы (3)


Ошибка Uncaught TypeError: Cannot read property 'matchedWords' of undefined возникает из-за того, что в вашем индексе Algolia больше нет поля.

С версии 1.x до 2.x плагина произошли некоторые изменения, и мы уже однажды видели эту ошибку.

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

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

person rayrutjes    schedule 30.06.2017
comment
Спасибо за ответ. Это имело бы смысл, я был сбит с толку, потому что не вносил никаких изменений в код, и вдруг страница поиска сломалась. На самом деле я «исправил» ошибку, перекодировав свой шаблон попадания мгновенного поиска. Я удалил весь код, который у меня был, относящийся к 'highlightResult'. Таким образом, мой шаблон мгновенного поиска буквально просто показывает данные, но не имеет никаких функций для выделения совпадающих результатов поиска. Я попробую ваше предложение удалить мои индексы и попытаюсь снова заставить выделение работать - сообщу! - person Andy Buchanan; 30.06.2017

Я удалил все свои индексы Algolia, переиндексировал все необходимое и вернулся к моему старому шаблону поиска с мгновенным поиском, который действительно снова работал, с подсветкой поиска.

Однако одна вещь не работает. Раньше я использовал data.images.medium для отображения миниатюр каждого результата поиска. По какой-то причине это больше не работает, так как изображение не отображается. Ошибок консоли нет, и я не могу понять, что изменилось.

Я могу заставить data.images.thumbnail отображать миниатюру с каждым результатом поиска. Однако я хочу получить изображение с более высоким разрешением, что я раньше мог сделать, используя data.images.medium...

Любые идеи?

person Andy Buchanan    schedule 30.06.2017

Я узнал ответ из этого поста - https://discourse.algolia.com/t/image-size-on-instantsearch-page/1593/2

Начиная с версии 2.x, при каждом поиске не возвращаются изображения всех размеров, поскольку это вызывает проблемы с производительностью.

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

add_filter('algolia_post_images_sizes', function($sizes) {
    $sizes[] = 'medium'; 

    return $sizes;
});

Как только этот код будет добавлен в функции или ваш собственный файл плагина, вам нужно будет переиндексировать все, а затем выбранные вами пользовательские размеры изображений должны начать работать.

Надеюсь, это будет полезно.

person Andy Buchanan    schedule 03.07.2017