Wyświetlanie błędów w WordPress może nie należy do najciekawszych tematów, ale na pewno niektórym początkującym użytkownikom WordPress pare przemyśleń na ten temat może się przydać. 🙂 Jak wiadomo, na pewno nie wszystkim, aktualizacje są sprawą kluczową w kwestiach bezpieczeństwa. Stale rozwijane są komponenty z których korzysta WordPress (serwer http, interpreter PHP, baza danych) i podobnie sam WordPress korzysta z coraz to nowszych rozwiązań. Przez to niektóre stare funkcje odchodzą do lamusa, a wiele starych, już nie aktualizowanych dodatków, które z nich korzystały nagle zaczynają sypać błędami, a nawet paraliżują całą stronę – wyświetlając nam biały ekran śmierci WordPress.
I tutaj wkracza wiedza z zakresu, jak ten błąd wyświetlić. 🙂 Nawet jeśli sami nie będziemy w stanie sobie z tym poradzić, to uzyskaną informację o błędzie będziemy mogli przedstawić znawcom PHP/WordPress na przykład na forum społeczności WordPress.
Włączamy wyświetlanie błędów w WordPress
Aby wyświetlić błąd PHP w WordPress, potrzebny jest nam dostęp do plików strony, w tym celu korzystamy z ulubionego klienta FTP (np. FileZilla lub WinSCP).
Po nawiązaniu połączenia edytujemy plik wp-config.php
, znajdujący się w katalogu głównym instalacji WordPress. W otwartym pliku musimy odszukać następującą sekcję, która sama w sobie dostarcza nam kilku istotnych informacji:
/** * Dla programistów: tryb debugowania WordPressa. * * Zmień wartość tej stałej na true, aby włączyć wyświetlanie * ostrzeżeń podczas modyfikowania kodu WordPressa. * Wielce zalecane jest, aby twórcy wtyczek oraz motywów używali * WP_DEBUG podczas pracy nad nimi. * * Aby uzyskać informacje o innych stałych, które mogą zostać użyte * do debugowania, przejdź na stronę Kodeksu WordPressa. * * @link https://codex.wordpress.org/Debugging_in_WordPress */ define('WP_DEBUG', false);
W ostatniej linijce definiującej stałą WP_DEBUG
, zmieniamy jej argument z wartości false
na true
, aby ją „włączyć”:
define('WP_DEBUG', true);
Po zapisaniu pliku na serwerze. Wyświetlanie błędów powinno zostać włączone, a po odświeżeniu białego ekranu śmierci, treść błędu powinna zostać wyświetlona. Treść i kod błędu powinien pomóc nam zidentyfikować problem, oraz namierzyć powodujący je dodatek. Jeżeli nie jesteśmy w stanie sami poradzić sobie z problemem, treść błędu przyda nam się w opisaniu problemu na przykład na forum społeczności WordPress.
Zapisywanie błędów WordPress w pliku
WordPress posiada jeszcze kilka stałych towarzyszących wspomnianej już opcji WP_DEBUG
. Jeżeli chcemy sprawdzić czy nasza strona działa prawidłowo i jest wolna od błędów możliwe jest włączenie logowania błędów do pliku tekstowego. Po aktywacji w katalogu /wp-content/
pojawi się nowy plik debug.log
.
Po określonym czasie możemy wrócić do tego pliku i sprawdzić, czy przez ten czas użytkownicy podczas korzystania ze strony, nie natknęli się na jakieś błędy.
Aby włączyć w WordPress opcję logowania błędów do pliku musimy sami dopisać następującą linijkę w pliku wp-config.php
, najlepiej bezpośrednio poniżej opcji WP_DEBUG
:
define('WP_DEBUG_LOG', true);
Warto dodać, że opcja WP_DEBUG_LOG
działa zależnie od WP_DEBUG
i aby cokolwiek było zapisywane w pliku musi ona być ustawiona na true
.
Powstaje problem, bo być może nie chcemy aby WordPress sypał błędami naszym użytkownikom, ale chcemy wiedzieć czy jest coś co możemy poprawić na stronie. Rozwiązaniem jest skorzystanie ze stałej WP_DEBUG_DISPLAY
.
define('WP_DEBUG_DISPLAY', false);
Włączona opcja czyli true
spowoduje wyświetlanie błędów przez WP_DEBUG
, ustawiona na false
nie będzie wyświetlała błędów na ekranie, ale pozwoli na ich logowanie do pliku przez WP_DEBUG_LOG
.
Przykładowa poniższa konfiguracja nie będzie wyświetlać błędów na ekranie, ale będzie je logować do pliku (z kodeksu WordPress):
// Enable WP_DEBUG mode define( 'WP_DEBUG', true ); // Enable Debug logging to the /wp-content/debug.log file define( 'WP_DEBUG_LOG', true ); // Disable display of errors and warnings define( 'WP_DEBUG_DISPLAY', false ); @ini_set( 'display_errors', 0 );
Na koniec należy pamiętać, aby nie zostawiać opisanych wyżej opcji włączonych na nieokreślony okres czasu. Treści błędów mogą udostępniać informacje o konfiguracji naszego serwera, oraz prowadzić do wskazania używanych przez nas „dziurawych” pluginów, które mogą stać się luką w bezpieczeństwie naszej strony i w efekcie doprowadzić do przykrych konsekwencji.