Při vývoji a ladění WordPress webu je klíčové mít přístup k informacím o chybách a varováních v kódu. WordPress proto obsahuje vestavěný debugovací režim, který pomáhá odhalit a opravit problémy v jádře, pluginech i šablonách.
Ladění PHP kódu je nedílnou součástí každého vývojového procesu, a správná aktivace debug režimu vám může ušetřit mnoho času při hledání chyb a optimalizaci kódu. V tomto článku si ukážeme, jak debug režim ve WordPressu aktivovat a efektivně využívat.
Aktivace deubg ve WordPress
Pro aktivaci režimu debug se ve WordPress používá soubor wp-config.php, který se obvykle nachází v základní složce WordPres na FTP.
Pro úpravu souboru můžete použít editor zdarma, například Visual Code nebo Notepad++.
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 začne WordPress zobrazovat varování, chyby a další ladicí zprávy. Často se tak objeví i chyby ve funkcích, které na první pohled fungují správně, ale mohou mít problém například se špatnou validací dat. Díky ladicím zprávám lze tyto chyby snadno opravit – WordPress totiž zobrazí typ chyby, řádek a soubor, kde se problém nachází. Odstranění těchto chyb vede k odolnějšímu a lépe spravovatelnému kódu.
Zastaralé funkce a argumenty
Po zapnutí WP_DEBUG se často zobrazují i varování o zastaralých funkcích a argumentech (deprecated functions). Tyto funkce a parametry zatím z kódu WordPressu nebyly odstraněny, ale mohou být v budoucích verzích nahrazeny nebo úplně zrušeny. Pokud je ve vašem kódu používáte, doporučuje se přejít na jejich novější alternativy.
Užitečné ladicí konstanty
Kromě základního WP_DEBUG nabízí WordPress několik dalších ladicích nástrojů, které vám pomohou efektivněji analyzovat a odstraňovat chyby v kódu. Tyto konstanty umožňují například ukládat chybové zprávy do souboru, zobrazovat nekomprimované verze skriptů nebo sledovat SQL dotazy prováděné databází. Jejich správné využití vám může ušetřit mnoho času při vývoji i optimalizaci webu.
WP_DEBUG_LOG
Pokud chcete chyby ukládat do souboru, místo aby se zobrazovaly na stránce, můžete aktivovat WP_DEBUG_LOG
. Tím se všechny chyby zapíší do souboru debug.log
v adresáři /wp-content/
:
define('WP_DEBUG_LOG', true);
Tato možnost je užitečná zejména při ladění AJAX požadavků nebo WP-Cron úloh, protože chyby z těchto procesů se jinak nemusí zobrazit přímo na stránce.
WP_DEBUG_DISPLAY
Tato konstanta určuje, zda se ladicí zprávy mají zobrazovat přímo v HTML výstupu:
define('WP_DEBUG_DISPLAY', false);
Pokud ji nastavíte na false
, chyby se na stránce nebudou zobrazovat, ale pokud máte aktivní WP_DEBUG_LOG
, stále se budou ukládat do souboru debug.log
.
SCRIPT_DEBUG
SCRIPT_DEBUG
přinutí WordPress načítat nekomprimované verze CSS a JavaScript souborů, místo jejich optimalizovaných (minifikovaných) verzí. To je užitečné při testování a ladění vlastních úprav v souborech .js
nebo .css
:
define('SCRIPT_DEBUG', true);
SAVEQUERIES
Pokud potřebujete analyzovat databázové dotazy, můžete aktivovat SAVEQUERIES
. Tím se všechny provedené SQL dotazy uloží do pole, včetně času provedení a funkce, která je zavolala:
define('SAVEQUERIES', true);
Seznam dotazů pak najdete v proměnné:
global $wpdb;
print_r($wpdb->queries);
Pozor: Aktivace SAVEQUERIES
může výrazně zpomalit běh webu. Proto jej po dokončení ladění nezapomeňte vypnout.
Doporučené nastavení wp-confing.php pro debug WordPressu
Pokud chcete ladit WordPress efektivně, doporučuje se použít následující nastavení v souboru wp-config.php
. Tento kód zajistí, že všechny chyby, varování a ladicí zprávy budou ukládány do souboru debug.log
v adresáři /wp-content/
, aniž by ovlivňovaly zobrazení webu.
Stačí nahradit nebo přidat následující řádky:
// 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);
Toto nastavení vám umožní ladit chyby bezpečně a efektivně, aniž by návštěvníci webu viděli chybové zprávy. Po dokončení ladění doporučujeme debug režim vypnout, aby nedošlo k úniku citlivých informací.
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 🙂