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

Веб сайт работает под 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.

Решение очень простое, хэш символ нужно завернуть в кавычки, что я и сделал.

Вуаля, теперь никаких ошибок и сайт работает, как и прежде.