# WordPress-es hibakeresés és logolás

> WordPress-es hibakeresés és logolás

A PHP kód hibakeresése minden projekt része, azonban a WordPress speciális hibakereső rendszerekkel rendelkezik, amelyek egyszerűsítik a folyamatot és szabványosítják a kódot a WordPress alaprendszer, bővítmények és sablonok terén. Ezen az oldalon bemutatjuk a WordPress különböző hibakereső eszközeit, és hogy hogyan lehetsz produktívabb a kódolás során, valamint hogyan lehet javítani a kód általános minőségét és interoperabilitását.

A nem programozóknak vagy általános felhasználóknak ezeket az opciókat használhatják a hibákról részletes információk megjelenítéséhez.

## Példa wp-config.php a hibakereséshez

```php wp-config.php
// WP_DEBUG mód engedélyezése
define( 'WP_DEBUG', true );

// Hibakeresési naplózás engedélyezése a /wp-content/debug.log fájlba
define( 'WP_DEBUG_LOG', true );

// Hibák és figyelmeztetések megjelenítésének letiltása
define( 'WP_DEBUG_DISPLAY', false );
@ini_set( 'display_errors', 0 );

// Fejlesztői verziók használata a fő JS- és CSS-fájlokból (csak akkor szükséges, ha ezeket a fő fájlokat módosítja)
define( 'SCRIPT_DEBUG', true );

```

> **Megjegyzés**
>
> MEGJEGYZÉS: Ezt be kell szúrni a wp-config.php fájlban található /* That's all, stop editing! Happy publishing. */ SOR ELŐTT.

## WP_DEBUG

A `WP_DEBUG` egy PHP állandó (állandó globális változó), amelyet használhatunk a WordPress összes részén a "debug" mód aktiválásához. Alapértelmezésben hamisnak tekinthető, és általában az `wp-config.php` fájlban van beállítva true értékre a WordPress fejlesztési verzióiban.

```php wp-config.php
// WP_DEBUG mód engedélyezése
define( 'WP_DEBUG', true );

```

```php wp-config.php
// WP_DEBUG mód letiltása
define( 'WP_DEBUG', false );

```

> **Megjegyzés**
>
> A példában szereplő `true` és `false` értékek nem idézőjelekkel (') vannak körülvéve, mert logikai (igaz/hamis) értékek. Ha az állandókat 'false'-ra állítja, akkor azok igazként lesznek értelmezve, mert az idézőjelek miatt karakterláncként, és nem logikai értékként lesznek kezelve.

### PHP Errors, Warnings, és Notices

A `WP_DEBUG` engedélyezése azt eredményezi, hogy az összes PHP hibaüzenet, figyelmeztetés és figyelmeztető jelzés megjelenik. Ez módosítja a PHP alapértelmezett viselkedését, amely csak súlyos hibákat jelenít meg, és/vagy fehér "halálképernyőt" mutat, amikor hibák lépnek fel.

Az összes PHP figyelmeztetés és jelzés megjelenítése gyakran hibaüzenetekhez vezet olyan dolgok esetén, amelyek nem tűnnek meghibásodottnak, de nem követik a PHP-ben a megfelelő adatbeviteli konvenciókat. Ezek a figyelmeztetések könnyen javíthatók, ha az érintett kód azonosításra kerül, és az eredményező kód szinte mindig ellenállóbb a hibákkal szemben, és könnyebben karbantartható.

### Elavult (Deprecated) funkciók

A `WP_DEBUG` engedélyezése értesítéseket is okoz a webhelyén használt elavult WordPress funkciókról és argumentumokról. Ezek olyan funkciók vagy funkció-argumentumok, amelyeket még nem távolítottak el a mag kódjából, de a közeljövőben tervezik az eltávolításukat. Az elavult funkciókról szóló értesítések általában az új funkcióra utalnak, amelyet helyette kell használni.

## WP_DEBUG_LOG

A `WP_DEBUG_LOG` a `WP_DEBUG` kiegészítője, amely lehetővé teszi az összes hiba mentését egy `debug.log` naplófájlba. Ez hasznos lehet, ha később szeretnéd áttekinteni az összes értesítést, vagy meg kell nézned az off-screen (pl. egy AJAX kérés vagy wp-cron futtatás közben generált) értesítéseket.

Fontos megjegyezni, hogy ezzel a beállítással lehetővé válik a naplófájl írása a PHP beépített error_log() függvényével, ami például hasznos lehet a Ajax események hibakeresésekor.

Amikor az értéke igazra (`TRUE`) van állítva, a napló a tartalomkönyvtárban (általában `wp-content/debug.log`) lesz mentve a webhely fájlrendszerében. Egyébként meg lehet adni egy érvényes fájl elérési útvonalát, hogy máshova lehessen menteni a fájlt.

```php wp-config.php
define( 'WP_DEBUG_LOG', true );
// - vagy -
define( 'WP_DEBUG_LOG', '/tmp/wp-errors.log' );
```

> **Megjegyzés**
>
> A `WP_DEBUG_LOG` funkció használatához a WP_DEBUG-nak (`TRUE`) be kell lennie engedélyezve. Ne felejtsd el, hogy a `WP_DEBUG_DISPLAY` kikapcsolható, ha szükséges.

## WP_DEBUG_DISPLAY

A `WP_DEBUG_DISPLAY` egy másik kiegészítője a `WP_DEBUG`-nak, amely szabályozza, hogy a hibakereső üzenetek megjelenjenek-e az oldal HTML-jében vagy sem. Az alapértelmezett érték "TRUE", ami megjeleníti a hibákat és figyelmeztetéseket, amint létrejönnek. Ha ezt az értéket hamisra ("FALSE") állítod, akkor az összes hibát elrejti. Ezt együtt kell használni a `WP_DEBUG_LOG` funkcióval, hogy a hibákat később áttekinthesd.

```php wp-config.php
define( 'WP_DEBUG_DISPLAY', false );
```

> **Megjegyzés**
>
> A `WP_DEBUG_DISPLAY` funkció használatához a `WP_DEBUG`-nak (true) be kell lennie engedélyezve. Ne felejtsd el, hogy a `WP_DEBUG_LOG` funkciót külön lehet szabályozni.

## SCRIPT_DEBUG

A `SCRIPT_DEBUG` egy kapcsolódó állandó, amely arra kényszeríti a WordPress-t, hogy a core CSS- és JavaScript fájljainak "fejlesztői" verzióját használja a normál, tömörített verziók helyett. Ez hasznos lehet, ha teszteled a beépített .js vagy .css fájlok módosításait. Az alapértelmezett érték hamis "FALSE".

```php wp-config.php
define( 'SCRIPT_DEBUG', true );
```

## SAVEQUERIES

A SAVEQUERIES definíció egy tömbben menti el az adatbázis-lekérdezéseket, és ezt a tömböt meg lehet jeleníteni a lekérdezések elemzéséhez. Az igaz értékre állított állandó minden lekérdezést eltárol, hogy mennyi ideig tartott a végrehajtása, és melyik függvény hívta meg.

```php wp-config.php
define( 'SAVEQUERIES', true );
```

A tömb a globális `$wpdb->queries` változóban van tárolva.

> **Megjegyzés**
>
> Ez hatással lesz a webhely teljesítményére, ezért győződj meg róla, hogy kikapcsolod, amikor nem a hibakeresési folyamat része.

## WP_DISABLE_FATAL_ERROR_HANDLER

A WordPress 5.2 óta a rendszer beépített fatális hiba helyreállítási móddal rendelkezik. Ha fatális PHP hiba történik, a WordPress megpróbálja helyreállítani az oldalt és emailt küld az adminisztrátornak. Fejlesztés közben hasznos lehet ezt kikapcsolni, hogy a tényleges hibát lásd.

```php wp-config.php
define( 'WP_DISABLE_FATAL_ERROR_HANDLER', true );
```

## WP_DEVELOPMENT_MODE

A WordPress 6.3 óta elérhető ez az állandó, amely jelzi a WordPress-nek, hogy fejlesztési módban fut. Ez befolyásolja bizonyos gyorsítótárak működését (pl. a theme.json cache kikapcsolása).

```php wp-config.php
define( 'WP_DEVELOPMENT_MODE', 'all' );
```

Lehetséges értékek:
- `'core'` - WordPress mag fejlesztése
- `'plugin'` - Bővítmény fejlesztése
- `'theme'` - Sablon fejlesztése
- `'all'` - Minden fejlesztési mód aktív

A beállítás a `wp_get_development_mode()` függvénnyel lekérdezhető, így a bővítmények és sablonok is reagálhatnak rá.

## Hibakeresést segítő bővítmények

Sok hibakereső bővítmény létezik a WordPress-hez, amelyek részletesebb információkat mutatnak az belső folyamatokról, akár egy adott összetevőre, akár általánosan. Íme néhány példa:

### Query Monitor

[query-monitor a WordPress.org-on](https://wordpress.org/plugins/query-monitor/)

### Debug Bar

[debug-bar a WordPress.org-on](https://wordpress.org/plugins/debug-bar/)
