Nedávno se v poradně objevila otázka jak u WordPressu aktivovat nástroj pro odladění chyb v programu neboli režim debug. Při programování nám takový prostředek pomáhá najít nedostatky a chyby vyvíjené aplikace.
Debug-ování PHP kódu je součástí každého projektu, a proto WordPress obsahuje speciální debugovací nástroj, který je navržen tak, aby pomohl zjednodušit a standardizovat kód v jádře, pluginech a šablonách.
WP_DEBUG
Aktivace je velmi jednoduchá. Stačí otevřít soubor wp-config.php a v něm najít řádek s tímto kódem:
define('WP_DEBUG', false);
a ten změnit na:
define('WP_DEBUG', true);
Po aktivaci WP_DEBUG se začnou zobrazovat varování, chyby a další zprávy. Zobrazením PHP zpráv a varování má často za následek zobrazování chybových hlášek u věcí, které se nezdají být rozbité. Nicméně může u nich docházet k špatné validaci dat uvnitř PHP. Tyto chyby se dají velmi snadno opravit, protože zpráva obsahuje druh chyby, řádek a soubor kde se nachází. Odstraněním chyb získáte odolný a lépe spravovatelný kód.
Zastaralé funkce a argumenty
Aktivace WP_DEBUG také často způsobí zobrazení zpráv o zastaralých funkcích a argumentech uvnitř WordPressu. Tyto funkce nebo argumenty nebyly doposud odstraněny z kódu, ale jsou navrženy k odstranění v blízké budoucnosti. Funkce jsou obvykle označeny za zastaralé v případě, že byly nahrazeny funkcí novou.
WP_DEBUG_LOG
WP_DEBUG_LOG je doplňující konstanta pro WP_DEBUG, která způsobuje, že všechny chyby jsou ukládány do souboru debug.log uvnitř adresáře /wp-content/. Tato funkce je užitečná v případě, že chcete všechny zprávy projít později, nebo chcete zobrazit chybové zprávy AJAXU či WP Cronu, které se jinak nezobrazují.
define('WP_DEBUG_LOG', true);
WP_DEBUG_DISPLAY
WP_DEBUG_DISPLAY je další doplňující konstanta pro WP_DEBUG. Určuje, za jsou chyby zobrazeny uvnitř HTML stránek nebo ne. Výchozí nastavení je na true a generované chyby jsou zobrazeny. Pokud funkci nastavíte na false doporučuje se také aktivovat WP_DEBUG_LOG, aby došlo k zaznamenání chyb.
define('WP_DEBUG_DISPLAY', false);
SCRIPT_DEBUG
SCRIPT_DEBUG je konstanta, která donutí WordPress používat „developerskou“ verzi souborů CSS a Javascript raději než minimalistické verze, které jsou načtené normálně. Toto se hodí v případě, že testujete modifikace zabudovaných .js nebo .css souborů.
define('SCRIPT_DEBUG', true);
SAVEQUERIES
SAVEQUERIES ukládá databázové dotazy do pole. Pole poté může být zobrazeno a slouží k analýze těchto dotazů. Jestliže je konstanta definována jako true je každý dotaz uložen společně s tím, jak dlouho se prováděl a jaká funkce ho zavolala.
define('SAVEQUERIES', true);
Pole je uloženo v global $wpdb->queries.
POZNÁMKA: Aktivace SAVEQUERIES má velký dopad na rychlost stránky. Proto se ujistěte, že je po skončení debugování vypnutá.
Doporučené nastavení wp-confing.php pro debug WordPressu
Následující kód vložte do wp-confing.php a nahraďte s ním:
define('WP_DEBUG_LOG', false);
Kód má za následek, že všechny chyby, varování a zprávy budou uloženy do souboru debug.log. Vypne také zobrazení chyb v HTML, a proto nebude běh stránky narušen.
// Zapne debug define('WP_DEBUG', true); // Zapne ukládání zpráv do souboru /wp-content/debug.log define('WP_DEBUG_LOG', true); // Vypne zobrazování chyb v HTML define('WP_DEBUG_DISPLAY', false); @ini_set('display_errors',0); // Zapne developerskou verzi souborů JS and CSS. (využijte pouze, pokud tyto soubory upravujete) define('SCRIPT_DEBUG', true);
Zdravím, díky za článek. V uvedeném kódu vám na řádku 9 chybí druhý parametr u funkce ini_set. Konkrétně tam bude 1 nebo „1“ nebo true – což ale jistě víte 🙂