Після оновлення WordPress на сайтах зі старою темою Jannah 2.0.4 може з’явитися дивна проблема: контент є, картинки в самих статтях відкриваються, але в різних блоках головної сторінки, сайдбарах, вкладках і модулях частина мініатюр зникає. Одночасно можуть перестати працювати перемикач мови, вкладки, окремі інтерактивні елементи шаблону.
У моєму кейсі проблема виявилася не в правах на папки, не в серверній оптимізації, не в плагінах для зображень і не в самому імпорті матеріалів. Причиною став конфлікт старого JS шаблону Jannah 2.0.4 з новою гілкою jQuery, яку використовує оновлений WordPress.
Нижче — робоча інструкція, яка реально відновила сайт.
Які симптоми вказують саме на цю проблему
- у верхньому великому блоці головної сторінки картинки є, а в інших блоках — ні;
- в одних місцях мініатюри відображаються, а в інших — тільки сірі заглушки;
- у самих статтях зображення можуть бути видимі, але в картках записів — ні;
- не працює перемикач мови у хедері;
- не перемикаються вкладки в сайдбарі;
- частина JS-елементів шаблону перестає реагувати;
- у консолі браузера з’являються помилки JavaScript.
Що важливо зрозуміти перед виправленням
У цьому кейсі проблема була саме у сумісності шаблону Jannah 2.0.4 з новим jQuery, а не в:
- правах на папки;
- gzip/nginx-кеші;
- плагінах для WebP або resize;
- серверній оптимізації;
- окремих розмірах мініатюр;
- самих записах у WordPress.
Тому безглуздо хаотично правити scripts.js, sliders.js, регенерувати всі мініатюри або масово оновлювати сайт. Потрібно було відновити сумісний стек jQuery для старої теми.
Що потрібно зробити
H3: 1. Видаліть усі попередні невдалі спроби виправлення
Перед застосуванням фінального рішення потрібно прибрати все, що тестувалося раніше.
Видаліть:
- усі тимчасові вставки з
scripts.js; - усі тимчасові вставки з
scripts.min.js; - усі тимчасові вставки з
sliders.js; - усі тимчасові вставки з
sliders.min.js; - усі тестові
console.log(...); - усі попередні патчі з
functions.php, які не дали результату.
Після цього в коді має залишитися тільки фінальне робоче виправлення.
Додайте в кінець functions.php тільки цей код
Файл:/wp-content/themes/jannah/functions.php
Додайте в самий кінець:
add_action ('wp_enqueue_scripts', function () {
if (is_admin ()) return;
wp_deregister_script ('jquery');
wp_deregister_script ('jquery-core');
wp_deregister_script ('jquery-migrate');
wp_register_script ('jquery-core', 'https://code.jquery.com/jquery-1.12.4.min.js', array (), '1.12.4', false);
wp_register_script ('jquery-migrate', 'https://code.jquery.com/jquery-migrate-1.4.1.min.js', array ('jquery-core'), '1.4.1', false);
wp_register_script ('jquery', false, array ('jquery-core', 'jquery-migrate'), '1.12.4', false);
wp_enqueue_script ('jquery');
}, 1);
3. Переконайтеся, що в налаштуваннях Jannah вимкнено мініфікований JS
У панелі теми перевірте:
- Jannah → Advanced Settings
- параметр Minified CSS and JS files
- залишити OFF
Це важливо для старого шаблону, щоб не підхоплювалися зайві конфліктні варіанти JS.
4. Перевірте сайт у режимі інкогніто
Після збереження:
- відкрийте сайт у режимі інкогніто;
- оновіть головну сторінку;
- перевірте роботу хедера, вкладок, мініатюр та мовного перемикача.
Якщо все зроблено правильно, сайт має ожити без додаткових змін у JS-файлах теми.
Що саме має запрацювати після виправлення
Після цього рішення повинні повернутися:
- картинки у проблемних блоках головної;
- мініатюри в списках записів;
- вкладки в сайдбарі;
- перемикач мови;
- частина інтерактивних елементів шаблону, які “померли” після оновлення WordPress.
Що НЕ потрібно робити одразу після виправлення
- не переписуйте заново
scripts.jsіsliders.js, якщо сайт уже працює; - не запускайте масову регенерацію мініатюр без потреби;
- не чіпайте PHP-версію в той самий день;
- не оновлюйте тему Jannah “в лоб” на живому сайті;
- не повертайте старі тестові правки.
Чому це спрацювало
Стара тема Jannah 2.0.4 розрахована на старіший стек JavaScript. Після оновлення WordPress фронтенд теми почав конфліктувати з сучасною версією jQuery. Через це шаблон не ініціалізував частину JS-логіки, а разом із нею “посипалися” мініатюри, вкладки та мовний перемикач.
Фактично ми повернули шаблону той jQuery-стек, з яким він нормально працює.
Важливе зауваження
Це робочий суміснісний фікс для старої теми, а не повноцінна модернізація сайту. Якщо сайт далі планується розвивати, у майбутньому варто окремо:
- підготувати нормальний апгрейд теми;
- протестувати WPGrabber;
- акуратно оптимізувати зображення;
- перенести виправлення у безпечну довгострокову схему.
Але якщо завдання — швидко повернути сайт до робочого стану без втрати контенту, цей спосіб спрацював.
Короткий чек-лист
- видалити всі старі тестові патчі;
- залишити тільки один код у
functions.php; - перевірити, що Minified CSS and JS files = OFF;
- протестувати сайт в інкогніто;
- якщо все працює — більше нічого не чіпати в цей день.
UA