Přeskočit na obsah

Web nefunguje? Volejte Web nefunguje? +420 721 589 155 nebo nám napište Napište nám

WordPress návody

WordPress debug (aktivace a možnosti nastavení)

Tomáš Cirkl Publikováno Aktualizováno 3 min čtení

debug
Obsah článku (3 kapitoly)

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

Autor

Tomáš Cirkl

Zakladatel WPlama. Od roku 2014 se starám o weby a e‑shopy na WordPressu a píšu o tom, co při té práci řeším. Třikrát jsem přednášel na WordCampech.

1 026 článků Všechny články autora

Komentáře (3)

Přidat komentář
  1. 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 🙂

    Odpovědět

  2. 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

    Odpovědět

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

      Odpovědět

Přidat komentář

E-mail nezveřejníme. Povinná pole jsou označena hvězdičkou.

Jak zacházíme s údaji z komentářů, popisují zásady ochrany osobních údajů.