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

Веб-сайт працює під WordPress і був створений давно невідомо ким на готовому комерційному шаблоні Salient від ThemeNectar, але на даний момент, я періодично вношу деякі зміни в нього і підтримую його працездатність.

Після чергового оновлення WordPress вже до версії 5.6 сайт перестав завантажуватися і зависав на білому екрані. Так як сайт старий, я одразу запідозрив проблеми з jQuery. Після останнього оновлення Вордпреса багато разів зустрічав проблеми через jQuery у сайтах, які використовують старі теми або плагіни, тому відразу поставив плагін «Enable jQuery Migrate Helper», який зазвичай допомагав у подібних ситуаціях. Але не цього разу і мені довелося копнути глибше.

Плагін “Enable jQuery Migrate Helper” дозволяє відкочувати поточну версію jQuery на більш пізню, що дозволяє старому коду на jQuery працювати.

Я відкрив консоль розробника (Developer tools) у Хромі і побачив гарну червону багатоповерхову помилку.

Uncaught Error: Syntax error, unrecognized expression: [data-hover-bg^=#]
at Function.se.error (jquery.min.js?ver=3.5.1:2)
    at se.tokenize (jquery.min.js?ver=3.5.1:2)
    at se.compile (jquery.min.js?ver=3.5.1:2)
    at se.select (jquery.min.js?ver=3.5.1:2)
    at se (jquery.min.js?ver=3.5.1:2)
    at Function.se.matchesSelector (jquery.min.js?ver=3.5.1:2)
    at Function.S.filter (jquery.min.js?ver=3.5.1:2)
    at D (jquery.min.js?ver=3.5.1:2)
    at s.fn.init.is (jquery.min.js?ver=3.5.1:2)
    at HTMLDivElement.<anonymous> (init.js?ver=6.0.1:1734)

Помилка довга і страшна, але тут важливі лише перший і останній рядок. Перша підказує природу помилки, а друга показує файл та рядок, де вона виникає. Тобто щось не так з виразом «[data-hover-bg^=#]», яке знаходиться у файлі «init.js» у рядку 1734.

Рішення дуже просте, хеш символ потрібно завернути в лапки, що я зробив.

Вуаля, тепер ніяких помилок і сайт працює, як і раніше.

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься.