Co je zobrazování chyb ve WordPressu neboli debug

Jednou z každodenních činností WordPresáka je debugování chyb v kódu. Tomu se prostě nevyhnete.

Pokud něco nefunguje, je potřeba přijít na to co to je. A na problematické místo se dá přijít tak, že se zapne zobrazování chyb, které na případný problém upozorní.

Takže, pokud v diskuzi dostanete radu – zapni debug, jde o zapnutí zobrazování chyb.

PHP má zabudované zobrazování chyb, které je buď zapnuté, nebo vypnuté. Tato konfigurace je nadřazená WordPressu, tudíž, jakékoliv nastavení je k ničemu, pokud má PHP na serveru, kde běží váš web zobrazování vypnuté.

Co je soubor wp-config.php a kde jej najdu?

Soubor wp-config.php se nachází v root složce WordPressu. To je složka, která obsahuje celou instalaci WP, včetně podsložek wp-admin, wp-content a wp-includes.

Obsahuje především definice konstant, které WordPress potřebuje k fungování a zároveň úpravou a přidáváním dalších definicí, můžete upravovat chování WordPressu.

Jak povolit zobrazování chyb?

Nejprve si musíte soubor pomocí ftp klienta stáhnout do počítače a otevřít v některém z editorů. Já používám Visual Studio, ale vhodné jsou i Sublime a PSPad.

V souboru pak najdete řádek, kde je kód:

define('WP_DEBUG', false);

A to je právě onen zmíněný debug. Je to definice konstanty WP_DEBUG, která může mít hodnotu false, nebo true. Zobrazení chyb poovlíte úpravou kódu na:

define('WP_DEBUG', true);

Tím se vám povolí zobrazování chyb. Ty se dělí na PHP chyby, varování a upozornění. Typické výpisy jsou fatal error (chyba která ukončí běh scriptu), nebo undefined (nedefinovaná proměná, což je jen upozornění).

Kromě těchto PHP hlášek se při zapnutém debugu vypisují informace o zavržených funkcích, což je poměrně problém, při zastaralých WooCommerce šablonách.

V případě, že se vám pro změně false na true, nezačnou zobrazovat chyby, tak máte vše v naprostém pořádku, nebo je třeba povolit zobrazování chyb v PHP. Před WP_DEBUG přidejte kód, případně kontaktujte váš hosting, zda máte povolené zobrazování v PHP:

@ini_set( 'display_errors', 1 );

Logování chyb

Kromě konstanty WP_DEBUG se musím zmínit ještě o dalších dvou – WP_DEBUG_LOG a WP_DEBUG_DISPLAY.

Tyto dvě konstanty ve správné kombinaci umožňují nezobrazovat chyby na webu, ale zapisovat je do souboru debug.log. Tento kód přidáte za WP_DEBUG a chyby se vám budou zobrazovat a zapisovat do souboru ve složce wp-config:

define( 'WP_DEBUG_LOG', true );

V případě, že ladíte chyby na produkčním webu, je vypisování chyb nežádoucí. Nejde o zrušení zobrazení chyb jako takového, ale pouze o jeho výpis na webu. Navenek se tak web tváří, že je všechno v pořádku a veškerá upozornění jsou ukládána do souboru. Občas se mi debug log osvědčil, pokud na webu byla chyba a po povolení WP_DEBUG se přesto zobrazovala jen bílá stránka. Do logu se chyba propsala.

Kompletní kód pro povolení debugu, ukládání do souboru, ale nezobrazování na webu:

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

Jak změnit umístění souboru debug.log?

Soubor debug.log má jednu nepříjemnou vlastnost. Pokud zapomenete vypnout logování chyb a soubor nesmažete, může si jej zobrazit kdokoliv. Což je často využíváno pro zjištění slabých míst webu.

WordPress však umožňuje změnit umístění souboru a přejmenovat jej:

define( 'WP_DEBUG_LOG', '/tmp/wp-errors.log' );

Tím ztížíte zvědavcům práci, protože nebudou vědět, kde soubor je a jak se jmenuje.

Rozšíření debugování pomocí pluginu

V případě, že potřebujete debugovat web více, než jen pomocí zobrazování chyb, doporučuji nainstalovat plugin https://wordpress.org/plugins/query-monitor/

About The Author

Zajímá mne Wordpress, responsivní šablony a zkrátka vše kolem tohoto skvělého redakčního systému.

Související články

1 Comment

  1. Pingback: Co je zobrazování chyb ve WordPressu neboli debug – WP kompas

Přidejte komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *