# Ismétlő lekérdezés

> Az Ismétlő lekérdezés beállításai: forrás, rendezés, argumentumok, korlát, és egy példa a legalább három éves tapasztalatú munkatársak listájára.

Az **Ismétlő lekérdezés** egy ismétlő (Repeater) meta mező elemeiből készít listát. Az így kapott elemekből Listing sablont építhetsz, és a Listing Grid segítségével jelenítheted meg, például az egyedi bejegyzés oldalán.

A lekérdezést a **JetEngine → Lekérdezéskészítő** oldalon hozod létre, a **Lekérdezés típusa** listában az **Ismétlő lekérdezés** típust választva.

![Az ismétlő lekérdezés beállításai](./kepek/query-builder-ismetlo-altalanos.webp)

*Az ismétlő lekérdezés beállításai* (https://minta-bolt.hu/wp-admin/admin.php?page=jet-engine-query&query_action=add)

A kép alján az **Ismétlő lekérdezés** blokk áll: a forrás, az objektum azonosítója, a rendezés, az argumentumok, a megjelenítési korlát és az eltolás.

## Beállítások

### Forrás

A **Forrás** listában három lehetőség közül választasz:

- **JetEngine Meta Field**: egy JetEngine-nel létrehozott Ismétlő mező. Megjelenik a **JetEngine Field** lista, ebből választod ki a mezőt. Az ismétlő mező lehet egy egyedi bejegyzéstípus, taxonómia vagy felhasználó meta dobozában is. Az **Objektum ID** mellett az adatbázis-ikonnal makrót is hozzáadhatsz. Például a „Queried User ID” makróval a felhasználó ismétlő mezőjének adatait jelenítheted meg a profiloldalon.
- **JetEngine Option Field**: egy beállítóoldalon lévő Ismétlő mező. Itt a **JetEngine Option** listában azt a beállítóoldal-mezőt választod ki, amelyik ismétlő.
- **Custom Field**: egyéni ismétlő mező. Megadod a mező nevét (az adatbázis-ikonnal makró is használható), a **Fields List** mezőben pedig felsorolhatod, hogy az ismétlő mező mely al-mezői kerüljenek be. Ha például húsz al-mező van, de csak hármat szeretnél, elég a három nevét megadni.

### Objektum ID

Annak az objektumnak az azonosítója, amelynek a meta adatát lekéred. Üresen hagyva az aktuális objektum azonosítóját használja.

### Sorrend és Rendezés alapja

Az **Új rendezési paraméter hozzáadása** gombbal rendezési feltételt veszel fel. Több paramétert is megadhatsz, mindegyiknél:

| Beállítás | Mit csinál |
|---|---|
| Rendezés alapja | **Repeater Index**: az elemeket az ismétlőn belüli sorszámuk szerint rendezi, ahogy a bejegyzéseket az azonosító szerint. **Repeater Field**: egy megadott mező szerint rendez. |
| Mező neve/ID | Az ismétlő mező neve, amely szerint rendezel (Repeater Field esetén). |
| Rendezés típusa | A mezőben tárolt adat fajtája: számszerű (1, 2, 3), betűrendes (a, b, c) vagy dátum. |
| Rendelés | Növekvő (a legkisebbtől a legnagyobbig) vagy csökkenő sorrend. |

A rendezés együttműködik a JetSmartFilters szűrőrendező elemével. A **Sorting List** fülön az **Order by** listában a **Meta key** (betűrend) vagy a **Meta key numeric** (számrend) opciót válaszd, a **Meta Key** mezőbe pedig az ismétlő mező nevét írd. Ha az elemben a „To order (by ID)” opciót választod, az visszaállítja az alapértelmezett rendezést.

### Lekérdezési argumentumok

Ha az ismétlő mezőnek csak bizonyos elemeit akarod megjeleníteni, az **Új hozzáadása** gombbal adj meg feltételeket. A feltételek mezői (mező neve, összehasonlítás, érték, típus, az üres dinamikus érték kihagyása) ugyanazok, mint a többi lekérdezéstípusnál: lásd az [összehasonlító műveletekről és adattípusokról szóló fejezetet](https://hub.hellowp.io/hu/plugins/jet-engine/query-builder-operatorok-es-tipusok/). A feltételben az ismétlő mező al-mezőinek nevét kell megadni.

### Megjelenítés/oldalankénti korlát és Eltolás

- **Megjelenítés/oldalankénti korlát**: hány elem látszik egyszerre. JetSmartFilters lapozással ez az oldalankénti elemszám.
- **Eltolás**: az elejéről kihagyandó elemek száma.
- **Előnézeti beállítások használata a Listing Itemhez**: bekapcsolva ugyanazt a bejegyzést és lekérdezési karakterláncot használja a rendszer az ezen a lekérdezésen alapuló Listing Item előnézetéhez.

## Példa: legalább három éves tapasztalatú munkatársak

A példában egy bejegyzéshez munkatársakat adunk egy ismétlő mezőben, és csak azokat jelenítjük meg, akiknek legalább három év tapasztalata van, a legtapasztaltabbal kezdve.

1. Hozz létre egy Ismétlő meta mezőt egy meta dobozban, és vegyél fel bele egy **Szám** típusú „Tapasztalat (év)” mezőt.
2. Szerkessz egy bejegyzést, és töltsd ki az ismétlő mező elemeit.
3. Menj a **JetEngine → Lekérdezéskészítő** oldalra, és hozz létre új lekérdezést **Ismétlő lekérdezés** típussal.
4. A **Forrás** legyen **JetEngine Meta Field**, és válaszd ki az ismétlő mezőt.
5. A **Lekérdezési argumentumok** blokkban kattints az **Új hozzáadása** gombra. A mező neve a szám mező neve legyen, az összehasonlítás „Nagyobb vagy egyenlő”, az érték **3**, a típus **Numeric**.
6. A **Sorrend és Rendezés alapja** blokkban kattints az **Új rendezési paraméter hozzáadása** gombra. A rendezés alapja **Repeater Field**, a mező neve a szám mező, a rendezés típusa számszerű, a rendelés csökkenő.
7. Mentsd a lekérdezést.
8. A **JetEngine → Listings/Components** oldalon hozz létre új Listing elemet. A forrás legyen **Query Builder**, válaszd ki az imént létrehozott lekérdezést, és adj nevet a sablonnak.
9. A sablonban használj Dynamic Field elemeket. A forrás **Post/Term/User/Object Data**, az **Object Field** listából a lekérdezés mezői közül választasz. A szerkesztőben még nem látszanak az értékek, csak a Listing Grid-ben. Egyes típusoknál (például médiamező) a **Filter field output** szükséges, például a „Get Image by ID” visszahívással.
10. Az egyedi bejegyzés sablonjára tedd rá a Listing Grid elemet, és válaszd ki ezt a Listinget. Csak a három vagy több éves tapasztalatú munkatársak jelennek meg, tapasztalat szerint csökkenő sorrendben.

Fontos: az ismétlő lekérdezéssel készült Listing Grid csak az egyedi bejegyzés oldalán jeleníthető meg.
