Każdy, kto pracuje z WordPressem — niezależnie, czy jest to programista, administrator, czy właściciel strony — prędzej czy później spotka się z błędem PHP.
Niektóre są widoczne od razu (np. White Screen of Death), inne ukryte głęboko w logach serwera.
Aby skutecznie zdiagnozować i naprawić problem, warto poznać narzędzia, które oferuje sam WordPress: WP_DEBUG, WP_DEBUG_LOG i WP_DEBUG_DISPLAY, a także zrozumieć, jak korzystać z logów serwera.
W tym artykule pokażę Ci, jak włączyć debugowanie w WordPressie, gdzie szukać błędów i jak czytać logi PHP.
1. Co to jest WP_DEBUG?
WP_DEBUG to stała konfiguracyjna w WordPressie, która pozwala włączyć tryb debugowania.
Po jej aktywowaniu WordPress zaczyna wyświetlać lub zapisywać błędy PHP, ostrzeżenia i powiadomienia.
Domyślnie opcja ta jest wyłączona, ponieważ w środowisku produkcyjnym nie powinno się pokazywać błędów odwiedzającym stronę.
2. Jak włączyć WP_DEBUG
Otwórz plik wp-config.php (znajduje się w głównym katalogu WordPressa) i dodaj lub zmień poniższą linię:
define( 'WP_DEBUG', true );
Dzięki temu WordPress zacznie wykrywać błędy PHP i komunikaty systemowe.
💡 Wskazówka: jeśli pracujesz na stronie produkcyjnej, nie pokazuj błędów publicznie — zamiast tego zapisz je do logu (o tym niżej).
3. Zapis błędów do pliku – WP_DEBUG_LOG
Aby błędy były zapisywane do pliku, dodaj kolejną stałą:
define( 'WP_DEBUG_LOG', true );
Po jej włączeniu wszystkie błędy zostaną zapisane do pliku:
/wp-content/debug.log
Ten plik możesz otworzyć w dowolnym edytorze tekstowym lub podglądać w czasie rzeczywistym np. przez SSH:
tail -f wp-content/debug.log
🔒 Uwaga: upewnij się, że plik debug.log nie jest publicznie dostępny (np. przez .htaccess), aby nie ujawniać danych wrażliwych.
4. Ukrywanie błędów przed użytkownikami – WP_DEBUG_DISPLAY
W środowisku produkcyjnym warto błędy zapisywać, ale nie wyświetlać ich na stronie.
W tym celu dodaj:
define( 'WP_DEBUG_DISPLAY', false );
Dzięki temu błędy nadal będą zapisywane do pliku debug.log, ale nie pojawią się w przeglądarce.
Pełna, bezpieczna konfiguracja debugowania może wyglądać tak:
define( 'WP_DEBUG', true );
define( 'WP_DEBUG_LOG', true );
define( 'WP_DEBUG_DISPLAY', false );
5. Dodatkowe opcje debugowania
WordPress oferuje kilka dodatkowych stałych, które mogą Ci pomóc:
define( 'SCRIPT_DEBUG', true ); // wymusza ładowanie nie-zminifikowanych wersji JS i CSS
define( 'SAVEQUERIES', true ); // zapisuje zapytania SQL w $wpdb->queries (do analizy wydajności)
Opcja SAVEQUERIES może pomóc w diagnozowaniu problemów z bazą danych, ale nie należy jej używać w produkcji — znacząco spowalnia działanie strony.
6. Analiza błędów w debug.log
W pliku wp-content/debug.log znajdziesz wpisy podobne do tego:
[17-Oct-2025 10:22:11 UTC] PHP Warning: Undefined variable $post_id in /wp-content/themes/motw/functions.php on line 42
Każdy wpis zawiera:
- datę i godzinę błędu,
- poziom błędu (Warning, Notice, Fatal error),
- opis błędu,
- ścieżkę do pliku i numer linii.
Najgroźniejsze są:
Fatal error – skrypt się zatrzymał, strona nie działa,
Parse error – błąd składniowy w kodzie PHP.
Warning i Notice zwykle nie zatrzymują działania strony, ale warto je naprawić — często prowadzą do większych błędów w przyszłości.
7. Gdzie znaleźć logi serwera
Nie wszystkie błędy trafiają do debug.log.
Wiele z nich zapisywanych jest w logach PHP na poziomie serwera.
W zależności od hostingu znajdziesz je w różnych lokalizacjach:
/var/log/apache2/error.log – dla Apache,
/var/log/nginx/error.log – dla Nginx,
- w panelu hostingowym (np. DirectAdmin → Logi błędów lub Plesk → Dzienniki).
Jeśli korzystasz z LiteSpeed, logi znajdziesz zwykle w:
/usr/local/lsws/logs/error.log
8. Przykład diagnozy błędu krok po kroku
- Włącz
WP_DEBUG i WP_DEBUG_LOG.
- Odśwież stronę, na której występuje błąd.
- Otwórz
wp-content/debug.log.
- Znajdź wpis zawierający nazwę pliku i numer linii.
- Otwórz ten plik w edytorze i sprawdź kod w danym miejscu.
- Popraw błąd i przetestuj ponownie.
Przykład:
PHP Fatal error: Uncaught Error: Call to undefined function get_user_date()
➡️ Oznacza to, że w kodzie wywołano funkcję, która nie istnieje (literówka lub brak pliku include).
9. Wskazówki bezpieczeństwa i dobre praktyki
- Nigdy nie zostawiaj
WP_DEBUG włączonego na produkcji.
- Regularnie czyść plik
debug.log, by nie zajmował zbyt dużo miejsca.
- Jeśli korzystasz z systemu Git, dodaj
debug.log do .gitignore.
- Nie udostępniaj plików logów publicznie.
- W środowisku staging możesz mieć
WP_DEBUG włączony cały czas.
10. Podsumowanie
Diagnostyka błędów PHP w WordPressie to podstawowa umiejętność każdego administratora i dewelopera.
Dzięki WP_DEBUG i logom serwera możesz szybko wykrywać problemy, zanim zauważą je użytkownicy.
Włącz debugowanie tylko wtedy, gdy jest potrzebne, a po rozwiązaniu problemu — wyłącz je, by zachować bezpieczeństwo i wydajność strony.