# Tokenek (elavult)

> A Tokens szintaxisa, típusai, példái és szűrői, a Text Editor with Tokens, a Shortcode with Tokens, a Discover Tokens és az Image Token.

A Token egy speciális formátumú szövegrészlet, amely helyőrzőként szolgál: megjelenéskor a bővítmény a helyére írja a dinamikusan előállított értéket (például a bejegyzés címét vagy egy egyedi mező tartalmát).

A bővítmény 3.0-s verziójától a Tokens elavult, a helyét a Dynamic Shortcodes vette át (lásd a [Dynamic Shortcodes](https://hub.hellowp.io/hu/plugins/dynamic-content-for-elementor/tokenek-es-shortcode-ok-dynamic-shortcodes/) fejezetet). A meglévő tokenek tovább működnek, de új munkához a Dynamic Shortcodes ajánlott. Az átállásról az [Átállás Tokensről Dynamic Shortcodesra](https://hub.hellowp.io/hu/plugins/dynamic-content-for-elementor/tokenek-es-shortcode-ok-atallas/) fejezet szól.

## A Tokens bekapcsolása

A Tokens alapból nem feltétlenül aktív. A kapcsolója a **Dynamic Content for Elementor → Funkciók** oldal **Tokens (Elavult)** fülén van. Az oldal tetején ott áll a figyelmeztetés: a Tokens elavult, csak a visszafelé kompatibilitáshoz szükséges esetben kapcsold be.

![A Funkciók oldal Tokens (Elavult) füle](./kepek/tokenek-es-shortcode-ok-tokens-beallitasok.webp)

*A Funkciók oldal Tokens (Elavult) füle* (https://minta-bolt.hu/wp-admin/admin.php?page=dce-features&tab=tokens)

A képen három beállítás látszik:

| Beállítás | Mit csinál |
|---|---|
| **Tokens állapota** | Be- vagy kikapcsolja az egész Tokens-rendszert (**Bekapcsolás** / **Kikapcsolás**). |
| **Aktív tokenek** | Jelölőnégyzetek a token-típusokhoz: form, system, date, author, user, post (jet és metabox is), term, option, wp_query, query, acf, product, expr. Csak a bejelöltek működnek. |
| **Szűrők fehérlistája** | Soronként egy PHP-függvény neve, amelyet szűrőként engedélyezel (lásd lejjebb). |

## Szintaxis

```text
[típus:mezőnév:almező-kulcs|ID|szűrő1|szűrő2?tartalék-szöveg]
```

| Rész | Kötelező | Jelentése |
|---|---|---|
| `[` | igen | nyitó jel |
| típus | igen | a token típusa (lásd lent) |
| `:` mezőnév | igen | natív mező vagy meta mező |
| `:` almező-kulcs | nem, többször is szerepelhet | ha a mező tömb vagy objektum, ezzel éred el egy elemét |
| `|` ID | nem, egész szám | melyik elemé az érték; ha kimarad, az aktuális bejegyzés azonosítóját használja |
| `|` szűrő | nem, többször is szerepelhet | PHP- vagy WordPress-függvény, amellyel átalakítod az eredményt |
| `?` tartalék-szöveg | nem | ez jelenik meg, ha a mező értéke üres vagy nincs |
| `]` | igen | záró jel |

## Típusok

Post, User, Term, Option, WP_Query, Query, System, Date, Advanced Custom Fields, JetEngine, Meta Box, Expression és Form.

## Példák

### Bejegyzés (post)

| Token | Eredmény |
|---|---|
| `[post:title\|esc_html]` | az aktuális bejegyzés címe |
| `[post:_yoast_wpseo_metadesc]` | a bejegyzés meta leírása (harmadik féltől származó meta mező) |
| `[post:_thumbnail_id\|wp_get_attachment_url]` | a kiemelt kép URL-je |
| `[post:_thumbnail_id\|wp_get_attachment_image_src(thumbnail)\|reset]` | a kiemelt kép bélyegképének URL-je |
| `[post:ID\|get_the_post_thumbnail(full)?]` | a kiemelt kép egy WordPress-függvénnyel, paraméterrel; ha nincs kiemelt kép, helyőrző kép |
| `[post:date\|strtotime\|date_i18n("j F Y")]` | a bejegyzés dátuma egyéni formátumban |
| `[post:date\|strtotime\|sum(86400)\|date_i18n("Y-m-d H:i:s")]` | a bejegyzés dátuma plusz egy nap |
| `[post:ID\|get_the_terms("category")\|wp_list_pluck("name")]` | a bejegyzés kategóriáinak neve |
| `[post:type:labels:singular_name]` | a bejegyzéstípus egyes szám címkéje |
| `[post:permalink]` | a bejegyzés URL-je (alternatíva: `[post:guid]`) |
| `[post:post_parent\|get_the_permalink]` | a szülőoldal URL-je |
| `[post:post_parent\|get_the_title]` | a szülőoldal címe |

### WooCommerce termék

A WooCommerce tokenek csak aktív WooCommerce mellett érhetők el. A bejegyzés-tokenek termékeknél is működnek.

| Token | Eredmény |
|---|---|
| `[product:_price]` | az aktuális termék alapára |
| `[product:_sku]` | az aktuális termék cikkszáma |
| `[product:_price\|Woo-tshirt-logo]` | a megadott cikkszámú termék alapára |

### Advanced Custom Fields

| Token | Eredmény |
|---|---|
| `[acf:my_acf_field]` | az ACF-mező értéke (a mező neve az ACF beállításaiban szereplő név); ismétlő sorok almezőire is működik |
| `[acf:my_acf_field\|123]` | a 123-as azonosítójú bejegyzés ACF-mezője |
| `[acf:my_file:filesize\|size_format(2)]` | egy ACF-fájlmező mérete olvasható formában, két tizedessel |
| `[acf:my_acf_field:title]` | az ACF-mezőcsoport beállításban megadott címkéje |

### JetEngine és Meta Box

| Token | Eredmény |
|---|---|
| `[jet:field-key]` | a JetEngine-mező értéke (a mezőkulcs a JetEngine beállításaiból) |
| `[jet:field-key\|123]` | a 123-as azonosítójú bejegyzés JetEngine-mezője |
| `[metabox:field-name]` | a Meta Box mező értéke (a kulcs a Meta Box beállításaiból) |

### Felhasználó és szerző

| Token | Eredmény |
|---|---|
| `[user:first_name]` | a bejelentkezett felhasználó keresztneve; vendégnek üres |
| `[user:last_name\|concat('Mr ',true)]` | a vezetéknév előtaggal |
| `[user:nicename\|trim?Anonimous]` | a levágott becenév, ennek hiányában vagy vendégnél a tartalék szöveg |
| `[user:roles]` | a felhasználó szerepkörei, vesszővel elválasztva |
| `[author:display_name]` | az aktuális bejegyzés szerzőjének neve |
| `[author:ID\|count_user_posts]` | a szerző bejegyzéseinek száma (paraméterként a bejegyzéstípus neve is megadható) |

### Kifejezés (term)

| Token | Eredmény |
|---|---|
| `[term:name]` | az aktuális kifejezés, vagy a bejegyzés első kifejezésének neve |
| `[term:description\|wpautop]` | a kifejezés leírása automatikus bekezdésekkel |
| `[term:description\|123]` | a 123-as azonosítójú kifejezés leírása |
| `[term:count\|123]` | a 123-as kifejezéshez tartozó bejegyzések száma |
| `[term:link\|last]` | a bejegyzés utolsó kifejezésének archívum-URL-je |
| `[term:txtarea\|artist]` | az „artist” taxonómia kifejezésén tárolt ACF-mező (például szövegterület) értéke |
| `[term:term_id\|category\|posts\|reset\|get_the_title]` | az ugyanabban a kategóriában legutóbb közzétett bejegyzés címe |
| `[term:thumbnail_id\|wp_get_attachment_url(full)]` | a kifejezés meta mezőjében azonosítóval tárolt média URL-je |

### Beállítás (option)

| Token | Eredmény |
|---|---|
| `[option:elementor_version]` | a telepített Elementor verziója a rendszerbeállításokból |
| `[option:www_user_roles:editor:name\|strtoupper]` | a Szerkesztő szerepkör neve nagybetűvel |
| `[option:home\|wp_logout_url]` | a kijelentkezési URL, utána a kezdőlapra visz |
| `[option:page_id:field_id]` | egy Meta Box beállítási oldal értéke |

### WP_Query és Query

| Token | Eredmény |
|---|---|
| `[wp_query:posts]` | a megjelenített oldal bejegyzéseinek azonosítói (például archívumon) |
| `[wp_query:query_vars:paged]` | az aktuális lapszám (az első oldalon 0) |
| `[query:user]` | az összes felhasználó megjelenítési neve |
| `[query:user:editor]` | a szerkesztők listája (bármely szerepkör megadható) |
| `[query:user:customer\|options("Guest")]` | vevők listája egy űrlap Select mezőjének beállításaihoz, plusz egy „Guest” üres értékkel |
| `[query:term]` | a kifejezések listája (alapból a kategóriák) |
| `[query:term:post_tag]` | a címkék listája (más taxonómia is megadható) |
| `[query:post]` | a bejegyzések címei |
| `[query:post\|count]` | a közzétett bejegyzések száma |
| `[query:post:uncategorized]` | a kategória nélküli bejegyzések (más kifejezés is megadható) |
| `[query:page]` | az oldalak listája (más egyedi bejegyzéstípus is megadható) |
| `[query:product\|options]` | az összes termék, Select mező beállításainak formátumában |
| `[query:post:_thumbnail_id]` | a bejegyzések kiemelt képeinek azonosítói (más meta mező is megadható) |

### System, Date, ciklusváltozó

| Token | Eredmény |
|---|---|
| `[system:get:my_query_var]` | a `$_GET` változó értéke; POST, SESSION, COOKIE és SERVER is használható |
| `[system:cookie:my_favorite]` | egy süti értéke (a kedvencekhez adás widget is ezt használja) |
| `[system:server:REMOTE_ADDR]` | a látogató IP-címe |
| `[date:+1 month]` | a mai naptól számított egy hónap, a WordPress alapformátumában |
| `[date\|Y m d]` | a mai dátum egyéni formátumban |
| `[date:user:registered]` | a felhasználó regisztrációs dátuma |
| `[date:post:date:+2 days\|Y-m-d H:i:s]` | a bejegyzés közzétételi dátuma plusz 2 nap |
| `[ROW:var1\|trim]` | a ROW nevű változó a saját HTML-szerkezetű widgeteken belül |

### Kifejezések (expr)

Az `expr` típus számításokat végez, és beágyazott tokeneket is elfogad.

| Token | Eredmény |
|---|---|
| `[expr:5+(8*2)/3]` | matematikai kifejezés kiszámítása |
| `[expr:[post:my_num_val]*2]` | számítás dinamikus értékkel (beágyazott token) |
| `[expr:[post:my_num_val]+[post:my_num_val]*[acf:coeff\|123]]` | számítás több dinamikus értékkel |

### Űrlap (form)

Az Elementor Pro űrlapjaihoz:

| Token | Eredmény |
|---|---|
| `[form:my_field_id]` | a „my_field_id” azonosítójú mező értéke a beküldés után |
| `[form:all-fields]` | az összes beküldött mező listája |
| `[form:all-fields\|!empty]` | csak a kitöltött mezők listája |
| `[form:pdf]` | a PDF-generátor által készített PDF csatolása a Dynamic Email-hez |
| `[form:pdf:url]` | a generált PDF URL-je |
| `[form:pdf:title]` | a generált PDF címe |
| `[query:user\|options]` | felhasználólista az Elementor Pro mező „Options” formátumában |
| `[query:term\|options("Select a category")]` | ugyanez egy kezdő üres értékkel |
| `[post:category\|value]` | több érték (például bejegyzés-kategóriák azonosítói) vesszővel elválasztva, az Elementor Pro mező „Default Value” beállításához |

## Szűrők

Szűrőként bármelyik WordPress-, PHP- vagy saját függvényt használhatod. A szűrő a token eredményét alakítja át:

- ha a token „Hello”-t ad, a `strtoupper` szűrővel „HELLO” lesz;
- ha a token egy bejegyzés azonosítóját adja, a `get_the_post_thumbnail` szűrővel annak kiemelt képe jelenik meg.

### Szűrő paraméterekkel

A szűrők paramétert is kaphatnak. A token értékét a bővítmény automatikusan első paraméterként adja át a függvénynek (egyes függvényeknél, például az `explode`-nál, az utolsóként). Például:

- `substr(0,3)` az eredmény első 3 karakterét adja;
- `get_the_post_thumbnail('full')` a teljes méretű képet adja, nem a bélyegképet.

### Több szűrő egymás után

Több szűrőt is megadhatsz, a megadás sorrendjében futnak le egymás után. A szűrőket a `|` jellel válaszd el:

```text
[post:title|sanitize_title|strtoupper|trim]
```

### Saját szűrő

A saját szűrőd egy függvény a téma `functions.php` fájljában; a függvény neve a szűrő neve. Egyetlen paramétere van: a token eredménye, amely lehet szöveg, tömb, objektum vagy üres. Az új függvényt vedd fel a **Szűrők fehérlistája** mezőbe is (soronként egyet), hogy a Tokens használhassa.

```php
function my_custom_token_filter( $data ) {
	// itt alakítsd át az értéket
	return $data;
}
```

## Widgetek és címkék a tokenekhez

A tokeneket az alábbi funkciók használják. Mind elavult jelölésű, és a **Funkciók** oldalon kapcsolható.

### Text Editor with Tokens

A **Content** csoportba tartozó widget: szövegszerkesztő, amelybe tokeneket írhatsz, így a bejegyzések, felhasználók, kifejezések, egyedi mezők és beállítások értékei jelennek meg benne. Csak rendszergazda használhatja.

### Shortcode with Tokens

A **DEV** csoportba tartozó widget (neve a panelen **Shortcode with Tokens**). Egy natív WordPress-shortcode-ot illeszthetsz be vele, amelyben tokenek lehetnek, így sokféle tartalmat adhatsz az oldalhoz kézi kódolás nélkül. Csak rendszergazda használhatja.

### Discover Tokens

A **Content** csoportba tartozó widget: az oldalon elérhető tokenek áttekintő listáját mutatja példákkal, hogy megismerd a lehetőségeket. Csak rendszergazda használhatja.

### Dynamic Tag - Tokens

Az Elementor dinamikus címkéi között a token minden beállításnál használhatóvá válik. Csak rendszergazda használhatja, a **Dinamikus címkék** fülön kapcsolható.

### Dynamic Tag - Image Token

Egy dinamikus címke olyan tokenekhez, amelyek képet vagy más médiatartalmat adnak vissza. Ezt is a **Dinamikus címkék** fül tartalmazza.
