# A tisztítás kikapcsolása egy Dynamic Field widgetnél

> Nyers HTML, SVG vagy szkript megjelenítése a Dynamic Field widgetben egy CSS-osztállyal és egy PHP-szűrővel.

A JetEngine a Dynamic Field widget kimenetét alapból a `wp_kses_post()` függvénnyel tisztítja. Ez védi az oldalt, de eltávolítja azt a jogos kódot is, például SVG-ikonokat vagy REST API-ból érkező adatokat. Egy PHP-szűrővel és egy CSS-osztállyal egyetlen widgetnél kikapcsolhatod a tisztítást, az oldal többi részén a védelem megmarad.

Szükséges: Elementor (ingyenes) és az aktív JetEngine.

## Mikor érdemes használni

- **Nyers SVG-ikonok:** ha `<svg>` kódot tárolsz metamezőben, és nem akarod, hogy az útvonalak vagy a kitöltés attribútumai eltűnjenek.
- **REST API-integráció:** ha a JetEngine külső REST API-ból hoz nyers HTML-t vagy JSON-t, amelynek formázatlannak kell maradnia.
- **Egyedi szkriptek:** szokatlan HTML-attribútumokat használó kódrészletek és interaktív elemek.

## Két szűrő, két cél

Két szűrő is bypassolja a szokásos korlátozást, és más a feladatuk:

| Szűrő | Hatás | Mikor használd |
| --- | --- | --- |
| Tisztítás kikapcsolása (ez a fejezet) | Egyetlen widgetnél teljesen kikapcsolja a tisztítást, a `disable-sanitize` CSS-osztály alapján | SVG-hez és REST API-adatokhoz, ahol a komplex XML-útvonalakat nehéz egyenként engedélyezni |
| `wp_kses` engedélyezőlista | A WordPress magbiztonságát módosítja az egész webhelyen: megadott címkéket (például `<input>`, `<iframe>`) enged meg | Hiányzó iframe-ek és térképek javítására: engedélyezed a szükséges attribútumokat (`src`, `type`), a többi szűrő aktív marad |

## A szűrő hozzáadása

A szűrőt egy kódrészlet-bővítménnyel (például Code Snippets) vagy a sablon `functions.php` fájljában add hozzá. Ez utóbbinál inkább gyermeksablonban, hogy a frissítés ne írja felül.

Code Snippets használatával:

1. Telepítsd és aktiváld a Code Snippets bővítményt.
2. Menj az **Összes kódrészlet** oldalra, és kattints az **Új hozzáadása** gombra.
3. Írj be egy nevet (például „Tisztítás kikapcsolása a Dynamic Fieldben”), a típus maradjon **PHP**.
4. Másold be a kódot:

```php
add_filter( 'jet-engine/listings/dynamic-field/sanitize-output', function( $result, $df ) {

	if ( false !== strpos( $df->get( '_css_classes' ), 'disable-sanitize' ) ) {
		$result = false;
	}

	return $result;

}, 0, 2 );
```

5. Kattints a **Mentés és aktiválás** gombra.

A kód megnézi, hogy a Dynamic Field widget kapott-e `disable-sanitize` CSS-osztályt, és ha igen, leállítja a tisztítást.

## A metamező előkészítése

Az adatot **Szövegterület** típusú metamezőben tárold. Például az SVG-ikon, amit a bejegyzés mezőjébe írsz:

```html
<svg viewBox="0 0 24 24" width="20" height="20">
  <path d="M12 21s-8-4.6-8-11a5 5 0 0 1 10 0 5 5 0 0 1 10 0c0 6.4-8 11-8 11z"/>
</svg>
```

## A widget beállítása

1. Húzz egy **Dynamic Field** widgetet a listázási sablonba vagy az egyedi oldal sablonjába.
2. A **Forrás** legyen **Metaadatok**, a **Metamező** listából válaszd ki az SVG-t tároló mezőt.
3. Nyisd meg a widget **Haladó** fülét, és a **CSS-osztályok** mezőbe írd be: `disable-sanitize`.
4. Tedd közzé az oldalt. Az ikon ezután megjelenik.

Csak olyan mezőnél használd ezt az osztályt, amelynek a tartalmát megbízható forrás adja, például az adminisztrátorok. Ne kapcsold ki a tisztítást olyan mezőnél, ahová a látogatók vagy ismeretlen felhasználók írhatnak be tartalmat.
