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 debug 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í.
Komentáře (3)
Přidat komentář →Pavel Krátký
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 🙂
Václav Ondráček
Dobrý den,
promiňte, že Vás obtěžuji, ale mohl byste mi pomoci s jedním konkrétním problémem? Velmi mi ztěžuje správu mých stránek. Já mám jako základní nastavený blokový editor, a to v češtině. A jak mile chci začít psát dále pod nadpisem, objeví se hláška:
U tohoto bloku došlo k chybě a nelze zobrazit náhled.
Objeví se také kdykoli implicite nebo explicite zvolím v blokovém editoru (ten tam mám automaticky nastavený – ani nevím jak bych ho vypnul) základní formát odstavec , případně další formáty na něm závislé. Jiné formáty (a vypozoroval jsem , že ty, které nemají funkci „justify“) to nedělají, tedy ani klasický editor
Tomáš Cirkl WPlama
Dobrý den,
tahle hláška znamená, že editor při načítání bloku Odstavec narazil na chybu ve skriptu. Samotný WordPress to obvykle nezpůsobuje. Nejčastěji za tím je doplněk prohlížeče nebo plugin, který bloky v editoru upravuje.
Postupoval bych takto:
1. Aktualizujte WordPress, pluginy i šablonu a vyprázdněte mezipaměť prohlížeče.
2. Otevřete editor v anonymním okně nebo v jiném prohlížeči. Pokud tam chyba není, způsobuje ji doplněk prohlížeče, typicky kontrola pravopisu (Grammarly, LanguageTool) nebo překladač stránek. Na adrese vašeho webu ho stačí vypnout.
3. Pokud chyba zůstane, zazálohujte web a v menu Pluginy vypínejte jeden plugin po druhém. Po každém vypnutí zkuste v editoru přidat odstavec. Začněte pluginy, které do editoru něco přidávají (zarovnání, formátování, další bloky). Jakmile chyba zmizí, víte, který plugin ji způsobuje.
Přesný text chyby uvidíte v konzoli prohlížeče: po zobrazení hlášky stiskněte F12 a otevřete záložku Console. Když do wp-config.php přidáte SCRIPT_DEBUG podle článku, bude výpis čitelnější a často v něm je i název pluginu. Text chyby můžete vložit sem a poradím dál.
Klasický editor místo blokového zapnete pluginem Classic Editor. Jako dočasné řešení to jde, ale chybu to neodstraní.