W witrynie wystąpił błąd krytyczny. Jak żyć?

Czy przydarzył Ci się kiedyś błąd krytyczny w WordPressie? Wystarczy, że zapomnisz średnika w kodzie PHP i problem gotowy. Kłopot może się też pojawić po aktualizacji PHP do wersji 8, ponieważ ta wersja PHP jest znacznie bardziej restrykcyjna niż poprzednie i to, co kiedyś było tylko ostrzeżeniem, teraz może spowodować błąd krytyczny.

WordPress: w witrynie wystąpił błąd krytyczny

Włączenie trybu debugowania

Komunikat na ekranie nie mówi zbyt wiele: „W witrynie wystąpił błąd krytyczny”. Jeśli chcesz się dowiedzieć, co konkretnie spowodowało problem, włącz tryb debugowania.

Uwaga: jeśli mimo błędu krytycznego jesteś w stanie zalogować się do panelu administratora, możesz do debugowania użyć wtyczki WP Debugging. Więcej informacji znajdziesz tu: WP Debugging: jest i wtyczka do debugowania! Ten sposób jest dobry dla osób, które nie czują się pewnie, edytując pliki WordPressa.

Zaloguj się do strony przez FTP lub menedżera plików w cPanel i znajdź plik wp-config.php. Znajduje się on w katalogu głównym Twojej strony:

Gdzie jest wp-config.php?

Dodaj do tego pliku następujące linijki:

define( 'WP_DEBUG', true );
define( 'WP_DEBUG_LOG', true );
define( 'WP_DEBUG_DISPLAY', false );

Ważne: powyższy kod musi być umieszczony przed linią /* That's all, stop editing! Happy publishing. */. Umieszczenie go za tą linią nie będzie miało efektu.

Edycja pliku wp-config.php

Teraz, gdy ponownie wejdziesz na swoją stronę i zobaczysz komunikat o błędzie krytycznym, błąd zostanie zapisany do pliku /wp-content/debug.log. Przykładowy plik debug.log będzie wyglądał tak:

[12-May-2022 15:04:17 UTC] PHP Fatal error:  Uncaught TypeError: implode(): Argument #2 ($array) must be of type ?array, string given in /app/wp-content/themes/astra-child/functions.php:28

W tym przypadku powodem błędu było nieprawidłowe użycie funkcji implode w pliku themes/astra-child/functions.php. W PHP 7.4 kod jeszcze działał, ale w wersji 8.0 już powoduje błąd krytyczny, bo zmieniła się kolejność parametrów w tej funkcji.

Co dalej?

Jeśli błąd tkwi we wtyczce, wyłącz ją, a następnie daj znać autorom wtyczki o problemie. Być może problem będzie naprawiony w następnej wersji.

Jak wyłączyć wtyczkę bez dostępu do kokpitu

Jeśli błąd jest na tyle krytyczny, że nie możesz się zalogować do kokpitu, zmień nazwę folderu wtyczki. Zaloguj się do strony przez FTP lub menedżer plików cPanel i przejdź do katalogu public_html/wp-content/plugins. Znajdź katalog wtyczki i zmień mu nazwę.

Jak zgłosić problem autorom wtyczki

Jeśli wtyczka jest darmowa, daj znać jej autorom na stronie wordpress.org. Wyszukaj swoją wtyczkę i przejdź do sekcji „Wsparcie”:

Gdzie uzyskać wsparcie techniczne dla wtyczki WordPress?

Jeśli wtyczka jest płatna, wystaw tzw. support ticket. Można to zrobić np. poprzez formularz kontaktowy na stronie wtyczki. Pamiętaj, że wsparcie techniczne jest w cenie wtyczki i po prostu ci się należy. Jeśli obawiasz się pisania po angielsku, opisz problem po polsku i skorzystaj z Google Translate do przetłumaczenia mejla.

Wyłączenie trybu debugowania

Gdy problem zostanie naprawiony lub zgłoszony, wyłącz tryb debugowania. To ważne, bo plik debug.log jest dostępny publicznie, dla każdego. Zastąp poprzedni kod następującym:

define( 'WP_DEBUG', false );
define( 'WP_DEBUG_LOG', false );
define( 'WP_DEBUG_DISPLAY', false );
@ini_set( 'display_errors', 0 );

Następnie usuń plik debug.log.

Logowanie do innego pliku

Błędy mogą być logowane do pliku o innej nazwie. Można też zmienić jego lokalizację, żeby trudniej było go podejrzeć obcym.

Zamiast:

define( 'WP_DEBUG_LOG', true );

wklej do pliku wp-config.php coś takiego:

define( 'WP_DEBUG_LOG', '/home/panimarta/domains/panimarta.pl/public_html/bledy-wp.log' );

/home/panimarta/domains/panimarta.pl/public_html/bledy-wp.log to ścieżka bezwzględna na serwerze. Od teraz błędy będą logowane do pliku bledy-wp.log.


Przeczytaj również: Szybkie debugowanie z WooCommerce.


Jeśli mimo tego wpisu błąd krytyczny nadal spędza Ci sen z powiek, daj mi znać, pomogę. Napisz do mnie mejla lub wypełnij formularz na stronie Kontakt. Razem poradzimy sobie z tym problemem w try miga 🙂

Pani Marta
Jestem Marta. Pani Marta. Na moim blogu dzielę się prostymi sposobami na bezwtyczkowe ulepszenie swojej strony WordPress. Jeśli brakuje Ci czegoś w tym wpisie lub chcesz, abym poruszyła temat, na którym Ci zależy, daj znać w komentarzu!

Dodaj komentarz

*

*

*

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *