Ostatnio na jednej ze stron którą się opiekuję zdecydowaliśmy się na aktualizację motywu Avada do najnowszej wersji (5.0.6). Zmiana została celowo trochę odroczona, bo dotyczy to strony która nie tylko działa i jest też tam sklep internetowy (WooCommerce), ale i miejscami konstrukcja niektórych „fragmentów” jest dość skompilowana, co w przypadku tak dużej migracji (nowy edytor stron, nowe podejście do tematu) może oznaczać problemy…

Aktualizacja motywu Avada z wersji 4.0.3 do 5.0.6

Muszę przyznać, że niby proces aktualizacji dość standardowy, do tego konwersja m.in. „krótkich kodów” na ich nowe wersje zautomatyzowana, to nawet jako dość doświadczona osoba w kilku miejscach trafiałem na momenty, gdy chwilę musiałem pomyśleć nad tym, co autorzy aktualizacji i procesu migracji mieli na myśli.

Na szczęście ostatecznie wszystko udało się prawidłowo zaktualizować, choć ostatnim etapem była ręczna analiza kodu utworzonego na jednej z podstron w procesie konwersji do jego nowej wersji, bo – jak się okazało – konwerter sam wygenerował nowy kod, który stanowił problem, ale „przewrotnie” wyświetlał komunikat, że chyba mamy tu nieskonwertowany kod ze starszej wersji (4.0.3).

Niestety – tak, w tym przypadku niestety – sama podstrona z błędem po konwersji wyświetlała się prawidłowo, więc nie było właściwie żadnego punktu zaczepienia i nie pozostało nic, jak ręczne przeglądanie wygenerowanego kodu (ponad 44 000 znaków), szukanie jakiś dziwnych elementów i pełno testowania metodą „prób i błędów”. Na szczęście się udało…

Brak obsługi arkusza stylów w motywie potomnym

Kolejny problem który zauważyliśmy, to brak przetwarzania arkusza stylów (style.css) w motywie potomnym (child theme). Niby wszystko OK, bo np. znajdujący się tam plik functions.php był prawidłowo przetwarzany, to niektóre modyfikacje w CSSie nie funkcjonowały. W kodzie strony wszystko się zgadzało (nie dokonali jakiejś większej zmiany nazw poszczególnych klas), zresztą kod CSS wprowadzony bezpośrednio w ustawieniach strony również działał prawidłowo.

W takim przypadku postanowiłem sprawdzić, czy nie uległ zamianie fragment odpowiedzialny za wczytywanie kaskadowego arkusza stylów z motywu potomnego – i to był strzał w dziesiątkę.

W wersji 4.0.3 motywu Avada plik functions.php znajdujący się w motywie potomnym zaczyna się od funkcji która wygląda tak:

function theme_enqueue_styles() {
    wp_enqueue_style( 'avada-parent-stylesheet', get_template_directory_uri() . '/style.css' );
}
add_action( 'wp_enqueue_scripts', 'theme_enqueue_styles' );

W wersji 5.0.6 (aktualna wersja) funkcja ta powinna wyglądać tak:

function theme_enqueue_styles() {
    wp_enqueue_style( 'child-style', get_stylesheet_directory_uri() . '/style.css', array( 'avada-stylesheet' ) );
}
add_action( 'wp_enqueue_scripts', 'theme_enqueue_styles' );

Nie było to specjalnie trudne do ustalenia, choć mogliby do konwertera dodać również funkcję odpowiadającą przynajmniej za sprawdzenie i wyświetlenie odpowiedniej informacji w razie potrzeby (choć mam świadomość, że najmniej zaawansowani użytkownicy WordPressa zazwyczaj nie korzystają z motywów potomnych).

(!) Zgłoś błąd na stronie
Potrzebujesz profesjonalnej pomocy? Skontaktuj się z nami!

Spodobał Ci się artykuł? Zapisz się do naszego Newslettera - ZERO SPAMu, same konkrety, oraz dostęp do dodatkowych materiałów przeznaczonych dla subskrybentów!

Na podany adres e-mail otrzymasz od nas wiadomość e-mail, w której znajdziesz link do potwierdzenia subskrypcji naszego Newslettera. Dzięki temu mamy pewność, że nikt nie dodał Twojego adresu przez przypadek. Jeśli wiadomość nie przyjdzie w ciągu najbliższej godziny (zazwyczaj jest to maksymalnie kilka minut) sprawdź folder SPAM.

Patryk

CEO Webinsider.pl, a do tego CTO, CIO, CFO, CMO, CSO, COO i CRO ;-)
Pasjonat nowych technologii - od sprzętu po oprogramowanie, od serwerów po smartfony i rozwiązania IoT. Potencjalnie kiepski bloger, bo nie robi zdjęć "talerza" zanim zacznie jeść.

Dumny przyjaciel swoich psów :-)
Envato Elements - pobierasz co chcesz, ile chcesz