# Lekérdezés és rendezés metamezők alapján

> Bejegyzések rendezése két metamező szerint, és lekérdezés eredményeinek használata metamező opcióforrásaként.

A Lekérdezéskészítő a metamezők értékei alapján rendezni és válogatni is tud. Itt két gyakori feladatot találsz: a bejegyzések rendezését két metamező szerint, és egy lekérdezés eredményét egy metamező opcióinak forrásaként.

## Bejegyzések rendezése két metamező szerint

A példában egy „Csapat” bejegyzéstípus tagjait rendezzük: elsődlegesen a tapasztalat (szám mező) szerint, azonos tapasztalatnál pedig a név (szöveg mező) szerint.

Előfeltétel: létezik a bejegyzéstípus, a hozzá tartozó listázási sablon, és két metamező („név” és „tapasztalat”) a bejegyzéstípushoz rendelve.

### A lekérdezés felvétele

1. A **JetEngine → Lekérdezéskészítő** oldalon kattints az **Új hozzáadása** gombra.
2. Az **Általános beállítások** részben add meg a nevet, a **Lekérdezés típusa** legyen **Bejegyzések lekérdezése**.
3. A **Meta lekérdezés** fülön kattints az **Új feltétel hozzáadása** gombra, és töltsd ki az első feltételt:
   - **Mező kulcsa/neve**: a metamező neve, például `nev`;
   - **Összehasonlítás**: **Létezik**, ez minden olyan bejegyzést megad, amelyben a kulcs megvan, ezért az **Érték** mezőt üresen hagyhatod;
   - **Típus**: **Karakter**, mert a név csak szöveg;
   - **Feltétel neve**: adj egyedi nevet, például „csapattag neve”. Ezt használod később a rendezésnél.
4. Az **Új feltétel hozzáadása** gombbal vedd fel a másodikat a tapasztalatnak: ugyanígy, de a **Típus** most **Numerikus**, mert a **Szám** típusú mező számot tárol, és a **Feltétel neve** legyen például „csapattag tapasztalata”.
5. Az **Általános** fülön válaszd ki a bejegyzéstípust.

![A Meta lekérdezés fül egy feltétellel](./kepek/meta-mezok-meta-lekerdezes.webp)

*A Meta lekérdezés fül egy feltétellel* (https://minta-bolt.hu/wp-admin/admin.php?page=jet-engine-query&query_action=add)

A képen az **Új lekérdezés hozzáadása** oldal látszik a **Meta lekérdezés** füllel: a feltétel mezői a **Mező kulcsa/neve**, az **Összehasonlítás**, az **Érték**, a **Típus** és a **Feltétel neve**. Az **Összehasonlítás** listában az **Egyenlő (=)**, **Nem egyenlő (!=)**, **Nagyobb, mint (>)**, **Nagyobb vagy egyenlő (>=)**, **Kisebb, mint (<)**, **Kisebb vagy egyenlő (<=)**, **Kedvelés**, **Nem illeszkedik**, **A listában**, **Nincs a listában**, **Között**, **Nem esik a tartományba**, **Létezik**, **Nem létezik**, **Reguláris kifejezés** és **Nem felel meg a reguláris kifejezésnek** értékek vannak, a **Típus** listában a **Karakter**, **Numerikus**, **Dátum**, **Dátum és idő**, **Időbélyeg**, **Decimális**, **Idő**, **Bináris**, **Aláírva** és **Előjel nélküli**.

### A rendezés megadása

1. Az **Általános** fül **Sorrend és Rendezés alapja** részében kattints az **Új rendezési paraméter hozzáadása** gombra.
2. A **Sorrend alapja** értéke legyen **Sorrend alapja: meta feltétel**, és a megjelenő meta feltétel mezőben válaszd ki az első feltétel nevét („csapattag tapasztalata”). Ez lesz az elsődleges szempont.
3. A **Rendelés** listában válaszd ki az irányt: a tapasztalatnál a csökkenő sorrend (a legmagasabbtól a legalacsonyabbig, a lista feliratai angolul állnak: „From highest to lowest values”).
4. Add hozzá a második rendezési paramétert is: ugyanígy a „csapattag neve” feltétellel, növekvő sorrenddel.
5. Kattints a **Lekérdezés hozzáadása** gombra.

Az elsőként felvett paraméter a legnagyobb súlyú, utána jön a második, a harmadik, és így tovább. Ezért a feltételek sorrendjének egyeznie kell azzal a prioritással, amit el akarsz érni. Ha például az első paraméter a tapasztalat növekvő, a második az értékelés csökkenő sorrendje, akkor előbb a tapasztalat szerint, azonos tapasztalatnál az értékelés szerint rendeződnek az elemek.

### A lekérdezés használata a listázásban

Elementorban: húzz be egy **Listing Grid** widgetet, válaszd ki a listázási sablont, és az **Egyéni lekérdezés** fülön kapcsold be az **Egyéni lekérdezés használata** beállítást, majd válaszd ki az elkészített lekérdezést. A tagok a tapasztalatuk szerint jelennek meg, és ha többeknek egyezik, név szerint növekvő betűrendben.

A blokkszerkesztőben ugyanez a menet: a **Listing Grid** blokkban az **Egyéni lekérdezés** fülön kapcsold be a beállítást, és válaszd ki a lekérdezést.

Ha a listázás egy mezőt „évek” szöveggel együtt ír ki, az a listázási sablon **A mező kimenetének testreszabása** beállítása, ahol egyéni formátumot adhatsz meg. A Listing Grid widget régi lekérdezési füleit (Bejegyzések, Kifejezések, Felhasználók, Tartalomtípusok lekérdezése) ne használd: helyettük a Lekérdezéskészítőt és az **Egyéni lekérdezés** fület ajánlott használni.

## Lekérdezés eredménye metamező opcióforrásként

A példában egy „Túrák” bejegyzéstípusból csak a jövőbeli túrák közül lehet választani egy oldal metamezőjében, majd az oldalon megjelenik a kiválasztott túra címe.

### A dátummező

1. A **JetEngine → Bejegyzéstípusok** oldalon szerkeszd a „Túrák” típust, és a **Metamezők** részben vegyél fel egy **Dátum** típusú mezőt (például „Kezdési időpontok”).
2. Kapcsold be az **Mentés időbélyegként** kapcsolót. Enélkül a dátummezőre épülő lekérdezés nem működik.
3. Mentsd a bejegyzéstípust.

### A lekérdezés

1. A **JetEngine → Lekérdezéskészítő** oldalon hozz létre egy lekérdezést, a **Lekérdezés típusa** legyen **Bejegyzések lekérdezése**, és az **Általános** fülön válaszd ki a „Túrák” bejegyzéstípust.
2. A **Meta lekérdezés** fülön vegyél fel egy feltételt: a **Mező kulcsa/neve** a dátummező neve, az **Összehasonlítás** **Nagyobb, mint (>)**, az **Érték** melletti dinamikus címke ikonnal válaszd a **Ma** értéket, a **Típus** pedig **Időbélyeg**.
3. Az **Eredmények előnézete** kapcsolóval ellenőrizheted, hogy csak a jövőbeli dátumú bejegyzések jönnek vissza.
4. Mentsd a lekérdezést.

### A metabox az oldalakhoz

1. A **JetEngine → Metaboxok** oldalon hozz létre egy új metaboxot: add meg a címet, a **Meta doboz célja** legyen **Bejegyzés**, és a **Bekapcsolás bejegyzéstípusoknál** mezőben válaszd az **Oldalak** értéket.
2. A **Metamezők** részben vegyél fel egy **Választógomb** mezőt, adj neki címkét, a **Forrás** legyen **Lekérdezéskészítő**, és a megjelenő **Lekérdezés** mezőben válaszd ki az előbb felvett lekérdezést.
3. Mentsd a metaboxot.

Az oldal szerkesztőjében a mező opciói a lekérdezés eredményei lesznek. Válaszd ki a kívántat, és mentsd az oldalt.

### Megjelenítés az oldalon

1. Nyisd meg az oldalt a szerkesztőben (például Elementorban), és húzz be egy **Dynamic Field** widgetet.
2. A **Forrás** legyen **Metaadat**, a **Meta mező** a választógomb mező neve.
3. Kapcsold be az **A mező kimenetének szűrése** beállítást, és a **Visszahívás** listában válaszd a **Get post/page title** értéket (a bejegyzés vagy oldal címe).
4. Tedd közzé az oldalt.

A frontenden a választógombnál kiválasztott bejegyzés címe jelenik meg.
