# Ismétlő mező elemeinek rendezése, szűrése és keresése

> Ismétlő lekérdezéssel és JetSmartFilters szűrőkkel az ismétlő mező elemeit név, ár vagy időtartam szerint rendezed és szűröd, az almezők szerinti keresés beállításával együtt.

Az **Ismétlő** (Repeater) mező több elemet tárolhat, és ezeket gyakran sorrendbe kell tenni vagy az értékük szerint szűkíteni. A JetEngine Query Builder és a JetSmartFilters együtt ezt az oldalon közvetlenül megoldja. Előfeltétel: ingyenes Elementor, blokkszerkesztő vagy Bricks, valamint aktív JetEngine és JetSmartFilters.

Példánk egy „Tour Packages” ismétlő mező a „Tours” bejegyzéstípuson, három almezővel: „Package Name” (szöveg), „Price” (szám), „Duration” (szám).

## Az ismétlő mező létrehozása

Ismétlő mező bármilyen bejegyzéstípushoz, egyéni tartalomtípushoz, taxonómiához, kapcsolathoz, felhasználóhoz (metadobozban) és beállítóoldalhoz létrehozható, JetEngine-nel vagy ACF-fel.

1. Nyisd meg a **JetEngine → Post Types** oldalon a bejegyzéstípust szerkesztésre.
2. A **Meta fields** résznél kattints az **Új metamező** gombra.
3. Add meg a feliratot és a nevet, a mező típusa legyen **Repeater**.
4. Az **Új ismétlőmező** gombbal vedd fel az almezőket (Package Name: Text, Price: Number, Duration: Number).
5. Mentsd a bejegyzéstípust.
6. Szerkessz egy bejegyzést, tölts ki több ismétlő elemet, és mentsd.

## Ismétlő lekérdezés

Az elemek rendezéséhez, szűréséhez és lapozásához kötelező az **Ismétlő lekérdezés** típusú lekérdezés.

1. A **JetEngine → Query Builder** oldalon kattints az **Új hozzáadása** gombra.
2. Add meg a nevet, a **Lekérdezés típusa** legyen **Ismétlő lekérdezés**.
3. A **Forrás** mezőben válaszd a **JetEngine Meta Field** forrást, és add meg a mezőt.
4. Az **Objektum ID** mezőt hagyd üresen, ha az elemeket az egyedi bejegyzés oldalán jeleníted meg. Statikus oldalon a bejegyzés azonosítóját add meg.
5. Mentsd a lekérdezést.

![Új lekérdezés Ismétlő lekérdezés típussal](./kepek/utmutatok-ismetlo-lekerdezes-tipus.webp)

*Új lekérdezés Ismétlő lekérdezés típussal* (https://minta-bolt.hu/wp-admin/admin.php?page=jet-engine-query&query_action=add)

A képen a **Forrás**, az **Objektum ID** és a rendezési paraméterek mezői láthatók.

## Listázási elem az ismétlő forráshoz

1. A **JetEngine → Listings/Components** oldalon vegyél fel új elemet: **Listing source** legyen **Query Builder**, a lekérdezés az imént készített, a nézet például **Elementor**.
2. A szerkesztőben tegyél be egy **Dynamic Field** widgetet, a **Source** maradjon **Post/Term/User/Object Data**.
3. Az **Object Field** listában a lekérdezés neve alatt válaszd ki az almezőt, amelynek értékét ki akarod írni.
4. Alakítsd a sablont, és mentsd.

## Elemek rendezése

1. Nyisd meg az egyedi bejegyzés sablonját, és hozz létre két oszlopot.
2. A második oszlopba tegyél **Listing Grid** widgetet, és válaszd ki az ismétlő sablont. Ha több Listing Grid van az oldalon, az **Advanced** fülön adj meg egyedi **CSS ID** értéket.
3. Az első oszlopba tegyél **Sorting** szűrőt ezekkel a beállításokkal: **This filter for**: **JetEngine**; **Apply type**: **Page reload**; **Apply on**: **Click on apply button**; **Show apply button**: bekapcsolva; **Query ID**: a Listing Grid CSS ID-ja.
4. A **Sorting List** fülön vegyél fel rendezési feltételeket. Mindegyiknél: **Title** (például „Név szerint ábécében”), **Order By** (**Meta key** vagy **Meta key numeric**), **Key** (az almező kulcsa, például `package_name`), **Order** (**ASC** vagy **DESC**).
5. Tedd közzé a sablont.

A weboldalon például a „By price from lowest to highest” lehetőséggel ár szerint növekvő sorrendbe kerülnek az elemek.

## Elemek szűrése

Az ismétlő elemekhez a **Radio**, **Checkbox**, **Select** és **Visual** szűrők használhatók **JetEngine Query Builder** adatforrással.

1. A **Smart Filters → Add New** oldalon add meg a szűrő nevét, a típusa legyen például **Radio**, az adatforrás **JetEngine Query Builder**, és válaszd ki az ismétlő lekérdezést.
2. A **Property to get Value from**, a **Property to get Label from** és a **Query Variable** mezőbe írd az almező kulcsát (például `package_name`), és frissítsd a szűrőt.
3. Az egyedi bejegyzés sablonjában a Listing Grid mellé tedd a **Radio Filter** widgetet: válaszd ki a szűrőt, **This filter for**: **JetEngine**, **Apply type**: **Page reload**, **Apply on**: **Click on apply button**, **Show apply button**: bekapcsolva, **Query ID**: a Listing Grid CSS ID-ja.
4. Mentsd az oldalt.

Az oldalon a kiválasztott csomagnév (például „Luxury Experience”) szerint szűkül a lista.

## Keresés az ismétlő almezői között

Ha egy keresőszűrővel (**Search**) az ismétlő almezőit akarod átkeresni:

1. Az ismétlő mezőnél kapcsold be a **Save as separate fields** (Mentés külön mezőkként) kapcsolót.
2. Ha már voltak kitöltött bejegyzések, nyisd meg mindegyiket, és mentsd újra, különben az értékek nem kerülnek be megfelelően az adatbázisba, és a keresés nem találja őket.
3. A **Smart Filters → Add New** oldalon hozz létre **Search** típusú szűrőt, a **Search by** legyen **By Custom Field (from Query Variable)**.
4. A **Query Variable** mezőbe az almezőket `ismetlo-neve_almezo-neve` alakban írd, több almezőt vesszővel elválasztva. Példa: `clients_info_country, clients_info_city`, ahol a `clients_info` az ismétlő neve, a `country` és a `city` az almezők.
5. Tedd az oldalra a Listing Gridet (előbb készüljön el a listázási sablon) és a keresőszűrőt, és kösd össze őket Query ID-val.

Ezután az országra (például „Italy”) és a városra (például „Paris”) is helyesen szűr a keresés.

## Gyakori kérdések

**Kötelező az egyéni lekérdezés az ismétlő elemek rendezéséhez vagy szűréséhez?** Igen, az **Ismétlő lekérdezés** típus a forrása a listának, amelyet rendezni, szűrni és lapozni lehet.

**Szűrhetők az elemek a mezőértékeik szerint?** Igen, a **Radio**, **Checkbox**, **Select** és **Visual** szűrők a **JetEngine Query Builder** adatforrással.
