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í).

Čtěte  Jak přidat popup okno na WordPress web

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.

Čtěte  Jak vytvořit odlišné menu pro různé stránky

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 emailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *

Chcete mít přehled o dění ve světě WordPressu?

Přímo do vašeho emailu

Pravidelný přehled o novinkách, trendech a událostech, které se točí kolem WordPressu. Souhrn toho nejzajímavějšího od nás i ze zahraničí.