Pojawił mi się biały ekran w WordPressie. Co robić?

  • Poziom trudności:

Jeśli używasz WordPressa już od kilku lat to najprawdopodobniej widziałeś tzw. ekran śmierci nie raz. Może brzmi to groźnie, ale w rzeczywistości nie ma się czego bać. Biały ekran pojawiający się zamiast strony może być równie irytujący jak błędy w połączeniu z bazą danych. To duet najczęściej spotykanych problemów podczas codziennego używania WP.

Błąd objawiający się białym ekranem jest frustrujący dlatego, że blokuje możliwość wejścia na zaplecze strony – do panelu administracyjnego. Ponieważ najczęściej nie pojawiają się na białym ekranie żadne błędy, dlatego użytkownik sam musi się domyślać co się stało i jak temu zaradzić. Najgorszym objawem jest biały ekran w niektórych miejscach na stronie. Przykładowo jeśli działa tylko na zapleczu, a strona wyświetla się poprawnie, wtedy ciężej będzie znaleźć przyczynę takiego stanu rzeczy. W poniższym miniporadniku znajdziesz kilka propozycji rozwiązania tego problemu.

Przed rozpoczęciem zmian zadbaj o backup całej strony oraz bazy danych.

Najczęstszym powodem wyświetlania błędów objawiających się białym ekranem jest wyczerpanie limitu pamięci. Może być to spowodowane błędnie działającą wtyczką, przyczyną może być nieprofesjonalnie zakodowany szablon strony lub problem może leżeć po stronie dostawcy hostingu.

Czy problem występuje także na innych stronach?

Jeśli posiadasz na serwerze wiele witryn powinieneś na początku sprawdzić czy biały ekran pojawia się tylko na jednej czy na wszystkich. Jeśli okaże się, że problem dotyczy wszystkich Twoich stron, jest duże prawdopodobieństwo, że wynika on z błędów na serwerze i wtedy pozostaje Ci skontaktować się z administratorem i wyjaśnić z nim ten problem.

Zwiększenie limitu pamięci

Aby zwiększyć limit pamięci na stronie wejdź na serwer poprzez klienta FTP (jeśli go nie posiadasz musisz wcześniej pobrać z sieci FileZillę, Norton Commandera albo inny program do obsługi FTP). Następnie zaloguj się na swoją witrynę (najczęściej wiąże się to z pozyskaniem od administratora nazwy serwera, loginu oraz hasła) i przejdź do katalogu ze stroną. Tam znajdź plik wp-config.php i rozpocznij jego edycję. Poszukaj linii:

define( 'WP_MEMORY_LIMIT', '32M' );

Jeśli ją znajdziesz zmień wartość 32M na 64M. Jeśli się okaże, że takiej linii nie ma, spróbuj ją dopisać:

define( 'WP_MEMORY_LIMIT', '64M' );

Całość zapisz, wyślij na serwer i sprawdź biały ekran. Jeśli nic się nie zmieniło, spróbuj dalszych kroków. Możesz spróbować zwiększać pamięć do 128M, 256M lub 512M ale najprawdopodobniej problem leży gdzie indziej. Nie znaczy to, że nie możesz spróbować i przekonać się czy faktycznie tak jest.

Wyłączenie wszystkich wtyczek

Ponieważ najprawdopodobniej nie masz dostępu do panelu administracyjnego, dlatego nie możesz wyłączyć wtyczek na liście Wtyczki -> Zainstalowane wtyczki. Jest jeszcze inny prosty sposób na wyłączenie wtyczek. Wejdź na serwer przez klienta FTP i otwórz katalog /wp-content. Znajdziesz tam m.in. katalog /plugins z wszystkimi Twoim wtyczkami. Teraz wystarczy że zmienisz nazwę z /plugins na przykładowo /plugins.wylaczone i w ten sposób zdeaktywujesz wszystkie wtyczki. Po tej operacji sprawdź w jaki sposób zachowuje się witryna. Jeśli problem został rozwiązany możesz zmienić nazwę z powrotem na /plugins i w po wejściu do katalogu zmieniaj nazwy katalogów tych wtyczek które Twoim zdaniem mogą powodować problem. Może to być wtyczka którą zainstalowałeś chwilę przed wystąpieniem białego ekranu.

Włącz domyślny szablon

Może się okazać, że problemem będzie nie wtyczka, a szablon. Wtedy spróbuj włączyć standardowy szablon instalowany domyślnie z WordPressem. Może to być: Twenty Ten, Twenty Eleven, Twenty Twelve, Twenty Thirteen, Twenty Fourteen lub Twenty Fifteen. Aby to zrobić skopiuj szablon, którego używasz (znajdziesz go w /wp-content/themes) i następnie usuń katalog z szablonem z serwera. WordPress który nie znajdzie dotychczas używanego szablonu powinien samodzielnie przełączyć się na szablon domyślnie zainstalowany.

Gdyby się to nie udało możesz spróbować zmienić ręcznie nazwę wywoływanego szablonu w phpMyAdmin. Poszukaj w tablicy wp_options nazw template, stylesheet, and current_theme i zmień wartości na przykładowo „twentyeleven”.

Jeśli to rozwiąże Twój problem to poszukaj w Twoim dotychczasowym szablonie w pliku functions.php (znajdziesz go w sekcji Wygląd -> Edytor) dodatkowych spacji na końcu tego pliku. Usunięcie ich może naprawić Twój szablon.

Jeśli to nie pomoże…

Ostatecznością jest instalacja na nowo czystej wersji WordPressa. Pobierz ze strony instalację w wersji takiej jak na serwerze, zrób kopię zapasową całej strony, a następnie umieść na serwerze katalogi wp-admin i wp-includes oraz wszystkie pliki, które znajdują się luzem po czym uruchom stronę i postępuj według wskazówek. Nie jest to zadanie najprostsze ale może być konieczne w sytuacji, kiedy pliki źródłowe będą uszkodzone.

Możesz też spróbować wkleić do pliku wp-config.php w ramach kodu PHP:

error_reporting(E_ALL); ini_set('display_errors', 1);

define( 'WP_DEBUG', true);

Po zapisaniu pliku na serwerze na białym ekranie pojawić się mogą ostrzeżenia, błędy oraz wskazówki podpowiadające gdzie szukać błędów na witrynie. Najczęściej tego typu podpowiedzi zawierają konkretną ścieżkę do uszkodzonych plików i wskazują w której linijce pojawia się problem.

Zdarza się czasami, że masz dostęp do panelu administracyjnego strony, a strona sama w sobie się nie wyświetla tylko widać znany już biały ekran. Najczęstszym problemem w tej sytuacji jest zapamiętywanie cache którejś ze wtyczek. W tej sytuacji powinno pomóc czyszczenie cache.

Wtyczki typu do optymalizacji wydajności strony (W3 Total Cache, WP Super Cache, Hyper Cache i inne) pozwalają w łatwy sposób z poziomu panelu administracyjnego usunąć cache. Przykładowo w WP Super Cache musisz przejść do zakładki Ustawienia -> WP Super Cache. Wybierz następnie „Easy” i kliknij na „Delete Cache”.

Czyszczenie cache pomaga także w sytuacji kiedy otwierana strona zawiera bardzo dużo treści. Ręczne czyszczenie cache to również prosta sprawa. Wystarczy że wejdziesz poprzez klienta FTP do katalogu /wp-content/cache/ i usuniesz wszystkie znajdujące się tam pliki.

Możesz także dodać do wp-config.php poniższą linijkę kodu aby ograniczyć liczbę zapytań generowanych przez stronę:

define('ENABLE_CACHE', true);

Innym sposobem, który może pomóc jest zwiększenie limitu na recursion i backtracki w WordPressie. Aby to zrobić wystarczy wkleić poniższy kod do wp-config.php:

/** Sztuczka pomocna przy długich wpisach */
ini_set('pcre.recursion_limit',20000000);
ini_set('pcre.backtrack_limit',10000000);

Niektóre serwery wymagają zmodyfikowania pliku php.ini dostępnego na serwerze.

UDOSTĘPNIJ