{"id":5536,"date":"2020-05-01T20:41:26","date_gmt":"2020-05-01T20:41:26","guid":{"rendered":"https:\/\/musilda.cz\/?p=5536"},"modified":"2020-05-01T20:41:26","modified_gmt":"2020-05-01T20:41:26","slug":"co-je-zobrazovani-chyb-ve-wordpressu-neboli-debug","status":"publish","type":"post","link":"https:\/\/affinite.io\/cs\/co-je-zobrazovani-chyb-ve-wordpressu-neboli-debug\/","title":{"rendered":"Co je zobrazov\u00e1n\u00ed chyb ve WordPressu neboli debug"},"content":{"rendered":"\n
Jednou z ka\u017edodenn\u00edch \u010dinnost\u00ed WordPres\u00e1ka je debugov\u00e1n\u00ed chyb v k\u00f3du. Tomu se prost\u011b nevyhnete. <\/p>\n\n\n\n
Pokud n\u011bco nefunguje, je pot\u0159eba p\u0159ij\u00edt na to co to je. A na problematick\u00e9 m\u00edsto se d\u00e1 p\u0159ij\u00edt tak, \u017ee se zapne zobrazov\u00e1n\u00ed chyb, kter\u00e9 na p\u0159\u00edpadn\u00fd probl\u00e9m upozorn\u00ed. <\/p>\n\n\n\n
Tak\u017ee, pokud v diskuzi dostanete radu – zapni debug, jde o zapnut\u00ed zobrazov\u00e1n\u00ed chyb. <\/p>\n\n\n\n
PHP m\u00e1 zabudovan\u00e9 zobrazov\u00e1n\u00ed chyb, kter\u00e9 je bu\u010f zapnut\u00e9, nebo vypnut\u00e9. Tato konfigurace je nad\u0159azen\u00e1 WordPressu, tud\u00ed\u017e, jak\u00e9koliv nastaven\u00ed je k ni\u010demu, pokud m\u00e1 PHP na serveru, kde b\u011b\u017e\u00ed v\u00e1\u0161 web zobrazov\u00e1n\u00ed vypnut\u00e9. <\/p>\n\n\n\n
Soubor wp-config.php se nach\u00e1z\u00ed v root slo\u017ece WordPressu. To je slo\u017eka, kter\u00e1 obsahuje celou instalaci WP, v\u010detn\u011b podslo\u017eek wp-admin, wp-content a wp-includes. <\/p>\n\n\n\n Obsahuje p\u0159edev\u0161\u00edm definice konstant, kter\u00e9 WordPress pot\u0159ebuje k fungov\u00e1n\u00ed a z\u00e1rove\u0148 \u00fapravou a p\u0159id\u00e1v\u00e1n\u00edm dal\u0161\u00edch definic\u00ed, m\u016f\u017eete upravovat chov\u00e1n\u00ed WordPressu. <\/p>\n\n\n\n Nejprve si mus\u00edte soubor pomoc\u00ed ftp klienta st\u00e1hnout do po\u010d\u00edta\u010de a otev\u0159\u00edt v n\u011bkter\u00e9m z editor\u016f. J\u00e1 pou\u017e\u00edv\u00e1m Visual Studio, ale vhodn\u00e9 jsou i Sublime a PSPad. <\/p>\n\n\n\n V souboru pak najdete \u0159\u00e1dek, kde je k\u00f3d:<\/p>\n\n\n\n A to je pr\u00e1v\u011b onen zm\u00edn\u011bn\u00fd debug. Je to definice konstanty WP_DEBUG, kter\u00e1 m\u016f\u017ee m\u00edt hodnotu false, nebo true. Zobrazen\u00ed chyb poovl\u00edte \u00fapravou k\u00f3du na:<\/p>\n\n\n\n T\u00edm se v\u00e1m povol\u00ed zobrazov\u00e1n\u00ed chyb. Ty se d\u011bl\u00ed na PHP chyby, varov\u00e1n\u00ed a upozorn\u011bn\u00ed. Typick\u00e9 v\u00fdpisy jsou fatal error (chyba kter\u00e1 ukon\u010d\u00ed b\u011bh scriptu), nebo undefined (nedefinovan\u00e1 prom\u011bn\u00e1, co\u017e je jen upozorn\u011bn\u00ed). <\/p>\n\n\n\n Krom\u011b t\u011bchto PHP hl\u00e1\u0161ek se p\u0159i zapnut\u00e9m debugu vypisuj\u00ed informace o zavr\u017een\u00fdch funkc\u00edch, co\u017e je pom\u011brn\u011b probl\u00e9m, p\u0159i zastaral\u00fdch WooCommerce \u0161ablon\u00e1ch. <\/p>\n\n\n\n V p\u0159\u00edpad\u011b, \u017ee se v\u00e1m pro zm\u011bn\u011b false na true, neza\u010dnou zobrazovat chyby, tak m\u00e1te v\u0161e v naprost\u00e9m po\u0159\u00e1dku, nebo je t\u0159eba povolit zobrazov\u00e1n\u00ed chyb v PHP. P\u0159ed WP_DEBUG p\u0159idejte k\u00f3d, p\u0159\u00edpadn\u011b kontaktujte v\u00e1\u0161 hosting, zda m\u00e1te povolen\u00e9 zobrazov\u00e1n\u00ed v PHP:<\/p>\n\n\n\n Krom\u011b konstanty WP_DEBUG se mus\u00edm zm\u00ednit je\u0161t\u011b o dal\u0161\u00edch dvou – WP_DEBUG_LOG a WP_DEBUG_DISPLAY.<\/p>\n\n\n\n Tyto dv\u011b konstanty ve spr\u00e1vn\u00e9 kombinaci umo\u017e\u0148uj\u00ed nezobrazovat chyby na webu, ale zapisovat je do souboru debug.log. Tento k\u00f3d p\u0159id\u00e1te za WP_DEBUG a chyby se v\u00e1m budou zobrazovat a zapisovat do souboru ve slo\u017ece wp-config:<\/p>\n\n\n\n V p\u0159\u00edpad\u011b, \u017ee lad\u00edte chyby na produk\u010dn\u00edm webu, je vypisov\u00e1n\u00ed chyb ne\u017e\u00e1douc\u00ed. Nejde o zru\u0161en\u00ed zobrazen\u00ed chyb jako takov\u00e9ho, ale pouze o jeho v\u00fdpis na webu. Navenek se tak web tv\u00e1\u0159\u00ed, \u017ee je v\u0161echno v po\u0159\u00e1dku a ve\u0161ker\u00e1 upozorn\u011bn\u00ed jsou ukl\u00e1d\u00e1na do souboru. Ob\u010das se mi debug log osv\u011bd\u010dil, pokud na webu byla chyba a po povolen\u00ed WP_DEBUG se p\u0159esto zobrazovala jen b\u00edl\u00e1 str\u00e1nka. Do logu se chyba propsala. <\/p>\n\n\n\n Kompletn\u00ed k\u00f3d pro povolen\u00ed debugu, ukl\u00e1d\u00e1n\u00ed do souboru, ale nezobrazov\u00e1n\u00ed na webu:<\/p>\n\n\n\n Soubor debug.log m\u00e1 jednu nep\u0159\u00edjemnou vlastnost. Pokud zapomenete vypnout logov\u00e1n\u00ed chyb a soubor nesma\u017eete, m\u016f\u017ee si jej zobrazit kdokoliv. Co\u017e je \u010dasto vyu\u017e\u00edv\u00e1no pro zji\u0161t\u011bn\u00ed slab\u00fdch m\u00edst webu. <\/p>\n\n\n\n WordPress v\u0161ak umo\u017e\u0148uje zm\u011bnit um\u00edst\u011bn\u00ed souboru a p\u0159ejmenovat jej:<\/p>\n\n\n\n T\u00edm zt\u00ed\u017e\u00edte zv\u011bdavc\u016fm pr\u00e1ci, proto\u017ee nebudou v\u011bd\u011bt, kde soubor je a jak se jmenuje.<\/p>\n\n\n\n Roz\u0161\u00ed\u0159en\u00ed debugov\u00e1n\u00ed pomoc\u00ed pluginu<\/p>\n\n\n\n<\/figure>\n\n\n\n
Jak povolit zobrazov\u00e1n\u00ed chyb?<\/h2>\n\n\n\n
define('WP_DEBUG', false);<\/code><\/pre>\n\n\n\n
define('WP_DEBUG', true);<\/code><\/pre>\n\n\n\n
@ini_set( 'display_errors', 1 );<\/code><\/pre>\n\n\n\n
Logov\u00e1n\u00ed chyb<\/h2>\n\n\n\n
define( 'WP_DEBUG_LOG', true );<\/code><\/pre>\n\n\n\n
define('WP_DEBUG', true);\ndefine('WP_DEBUG_LOG', true);\ndefine('WP_DEBUG_DISPLAY', false);<\/code><\/pre>\n\n\n\n
Jak zm\u011bnit um\u00edst\u011bn\u00ed souboru debug.log?<\/h2>\n\n\n\n
define( 'WP_DEBUG_LOG', '\/tmp\/wp-errors.log' );<\/code><\/pre>\n\n\n\n