A data és a form shortcode
A {data:…} shortcode használata az ACF Repeater, az ACF Flexible Content, a Views és a Remote Content widgetben, valamint a {form:…} shortcode-ok az Elementor Pro űrlapokhoz.
A Dynamic Shortcodes két családja kifejezetten bonyolultabb adatszerkezetekhez készült: a data shortcode a widgetek saját, összetett adatait (egy repeater sorát, egy lekérdezés számlálóit, egy külső API válaszát) adja át a beállításokba, a form shortcode pedig az Elementor Pro űrlap mezőit érhetővé teszi. Mindkettő a Dynamic Shortcodes bővítményt igényli (lásd a Dynamic Shortcodes fejezetet).
A data shortcode
Szekció neve “A data shortcode”A data shortcode egy „adatelérő”: azt adja vissza, amit az adott widget a saját beállításához biztosít. Nem érhető el mindenhol, csak azokban a funkciókban, amelyek összetett vagy strukturált adatot kezelnek, és ott is csak a megadott beállításmezőkben:
- ACF Repeater widget,
- ACF Flexible Content widget,
- Views widget,
- Remote Content widget.
Az elérhető kulcsok widgetenként mások, ezért a {data:…} más beállításban nem ad értéket.
ACF Repeater widget
Szekció neve “ACF Repeater widget”A widget Dynamic HTML megjelenítési módja a data shortcode-hoz készült: saját HTML-t írsz, és abba beépíted az aktuális sor adatait. A shortcode csak ebben a beállításban használható.
| Shortcode | Mit ad vissza |
|---|---|
{data:row} |
A teljes sort tömbként. Egy almezőt a {data:row||almező-neve} alakkal érsz el, vagy ciklussal végigjárhatod. |
{for:item {data:row} {get:item} @sep=', '} |
A sor értékeit egy szövegként, vesszővel elválasztva. Egyszerű kiíráshoz jó. |
{data:row-index} |
A sor sorszámát a repeaterben, 1-től indulva. Számozott listához vagy sorszámláláshoz hasznos. |
Példák:
- Egy almező értéke:
{data:row||almező-neve} - Vesszővel tagolt kiírás:
{for:item {data:row} {get:item} @sep=', '} - Sorszám a tartalom előtt:
Sor {data:row-index}: {data:row-formatted}
ACF Flexible Content widget
Szekció neve “ACF Flexible Content widget”A Flexible Content widget ugyanígy rendelkezik Dynamic HTML móddal, és a data shortcode itt is csak ebben a beállításban érhető el.
| Shortcode | Mit ad vissza |
|---|---|
{data:row} |
A teljes sort tömbként. Vagy egy almezőt kérsz belőle ({data:row||almező-neve}), vagy ciklussal bejárod. |
{for:item {data:row} {get:item} @sep=', '} |
A sor értékeit vesszővel elválasztott szövegként. |
A repeaterhez és a flexible contenthez tartozó többi beállítást az ACF Repeater és az ACF Flexible Content és űrlap fejezet írja le.
Views widget
Szekció neve “Views widget”A Views widget néhány beállításában használhatsz data shortcode-ot. Ezek:
| Beállítás | Mire való | Shortcode |
|---|---|---|
| Group by Field Heading | A csoportok címsorának dinamikus megadása. | {data:heading} a csoport értékéhez, {data:permalink} a kifejezés (term) permalinkjéhez |
| Count Text | Az elemek vagy oldalak számának egyedi szövege. | {data:query}, például Oldal {data:query||page} | {data:query||start}-{data:query||end} / {data:query||total} (aktuális oldal, a látható elemek tartománya, összes elem) |
| Where Field Sub | Szűrés egy almező vagy metaadat értéke szerint. | {data:field} |
| Select Rewrite | Egy mező értékének átírása egyedi szöveggel, az adatbázisbeli érték módosítása nélkül. | {data:field} |
A Views widget többi beállítását a Nézetek fejezet tartalmazza.
Remote Content widget
Szekció neve “Remote Content widget”A Remote Content widget Dynamic HTML mezőjében a data shortcode a megadott végpontról (endpoint) letöltött adatot adja át. Más beállítás nem támogatja.
{data:result}: a végpont válasza, magától kitöltődik. Az adatnak JSON formátumúnak kell lennie, mint a legtöbb REST API-nál.{data:result|dump}: a válasz szerkezetének látható kiírása. Az adat felépítésének megismeréséhez és hibakereséshez hasznos.{data:result||kulcs}: egy elem elérése a dupla függőleges vonallal. A{data:result||message}a JSON-objektummessagemezőjét adja.
Példa: véletlen kutyakép. Ha egy végpont ilyen választ ad:
{ "message": "https://images.dog.ceo/breeds/terrier-fox/n02095314_3054.jpg", "status": "success" }akkor a Dynamic HTML mezőbe ezt írva a kép minden oldalbetöltéskor a válasz message értékéből töltődik be:
<img src="{data:result||message}" />Példa: lista ciklussal. Ha a végpont objektumok tömbjét adja (például felhasználók listáját), a for shortcode-dal végigjárhatod:
<ul>{for:user {data:result} [<li> <strong>Név:</strong> {get:user||name}<br> <strong>E-mail:</strong> {get:user||email}<br> <strong>Város:</strong> {get:user||address||city}<br> <strong>Cég:</strong> {get:user||company||name} </li>]}</ul>A szerkezet:
- A
{for:user {data:result}indítja a ciklust: auseraz éppen soron lévő elem neve. - A szögletes zárójelek
[…]közötti sablon ismétlődik minden elemnél. Benne a{get:user||tulajdonság}az elem egy tulajdonságát adja, a beágyazott objektumokat több||lépéssel éred el ({get:user||address||city}). - A ciklus magától véget ér, amikor a tömb elfogy.
A form shortcode
Szekció neve “A form shortcode”A form shortcode-ok az Elementor Pro űrlapok adataihoz adnak hozzáférést. Olyan Dynamic Content for Elementor funkciókban használhatók, amelyek az Elementor Pro űrlapjával dolgoznak.
| Shortcode | Mit ad vissza |
|---|---|
{form:mező} |
Egy űrlapmező értékét szövegként. A mező az űrlapmező azonosítója (ID). Több választást engedő mezőnél (például jelölőnégyzetek) a kiválasztott értékek vesszővel elválasztva egy szövegben jönnek. |
{form:mező@raw} |
A mező eredeti értékét: többszörös választásnál PHP-tömböt (például ['a', 'b', 'c']), így megmarad a szerkezet. Egyedi feldolgozáshoz vagy haladó adatkezeléshez kell. |
{form:all-fields} |
Az űrlap összes mezőjét, az űrlap felépítésének megfelelően formázva. |
{form:all-fields@not-empty} |
Mint az előző, de csak a kitöltött mezőket. Összefoglalókhoz jó. |
{form:array} |
Az összes mezőt tartalmazó tömböt, amelyet ciklussal bejárhatsz egyedi megjelenítéshez. |
Példák a feltétel (if) shortcode-dal:
- Mező megjelenítése, ha nem üres:
{if:{form:mező} {form:mező}} - Ha az első mező üres, egy másik mező:
{if:{form:mező} {form:mező} {form:másik-mező}} - Ha üres, egyedi szöveg:
{if:{form:mező} {form:mező} 'A mező üres'}
A form shortcode-ok PDF-generálásnál is használhatók (lásd a Dynamic Shortcodes fejezet PDF-es részét).
Készült: