# Szűrők a Query Builder lekérdezéseiből

> Szűrőopciók JetEngine lekérdezésből: rendezett kifejezéslista, váltás lekérdezések között és AI-val készített SQL-lekérdezésű vizuális szűrő.

A **JetEngine Query Builder** és a **JetEngine Query Builder kapcsoló** adatforrás a JetEngine egyéni lekérdezéseiből állítja elő a szűrő opcióit. A mezők áttekintése az [Adatforrások áttekintése](https://hub.hellowp.io/hu/plugins/jet-smart-filters/adatforras-attekintes/) fejezetben van, itt a három gyakorlati példa.

## Követelmények

- Elementor vagy a blokkszerkesztő.
- Aktív JetSmartFilters és JetEngine.

## Rendezett kifejezéslista

Egyéni lekérdezéssel megváltoztathatod a kifejezések sorrendjét a szűrőben. A példa a termékkategóriákat név szerint rendezi, és kihagyja az alapértelmezett, kategorizálatlan termékek kategóriáját.

1. Nyisd meg a **JetEngine → Query Builder** oldalt, és kattints az **Add New** gombra.
2. Add meg a lekérdezés nevét, a **Query Type** legyen **Terms Query**.
3. A **General** fülön a **Taxonomy** legyen a **Termékkategóriák**, az **Order By** a **Name**, a rendezés pedig „From lowest to highest values”.
4. Az **Include/Exclude** fülön az **Exclude** mezőbe írd a kihagyandó kategória azonosítóját.
5. Mentsd a lekérdezést az **Add Query** gombbal.
6. Nyisd meg az **Intelligens szűrők → Új hozzáadása** oldalt. Válassz szűrőtípust (**Választógomb**, **Jelölőnégyzetek listája**, **Kiválasztás** vagy **Vizuális**), az **Adatforrás** legyen **JetEngine Query Builder**.
7. A **Lekérdezés kiválasztása** mezőben válaszd ki a lekérdezést.
8. A **Tulajdonság, ahonnan az értéket vesszük** mezőbe az az érték kerül, amellyel a szűrés történik. Hogy a tulajdonság hogyan hívják, a lekérdezésnél a **Preview results** gombbal nézheted meg: kifejezésnél a kifejezés azonosítója a `term_id`.
9. A **Tulajdonság, ahonnan a címkét vesszük** mezőbe az kerül, amit a látogató lát, kifejezésnél a `name`.
10. A **Lekérdezési változó** mező mellett kattints a **Dynamic Tag** gombra, válaszd a **Taxonomy** lehetőséget, és a taxonómia a **Termékkategóriák** legyen.
11. Töltsd ki a **Szűrőcímkék** részt, és mentsd a szűrőt.
12. Az oldalon tedd ki a szűrő widgetjét (jelölőnégyzetes szűrőnél a **Checkboxes Filter** widgetet), és válaszd ki a szűrőt. A **This filter for** értéke **JetEngine**, mert a **Listing Grid** widgetet szűröd. Tedd az oldalra a **Listing Grid** widgetet is.

![Jelölőnégyzetes szűrő a Query Builder adatforrással](./kepek/adatforras-query-builder.webp)

*Jelölőnégyzetes szűrő a Query Builder adatforrással* (https://minta-bolt.hu/wp-admin/admin.php?page=jet-smart-filters)

A képen a **Lekérdezés kiválasztása** lista és a két tulajdonság mező látszik.

Az oldalon az opciók ábécé-sorrendben jelennek meg, és a termékek a kiválasztott kategória szerint szűkülnek.

## Váltás lekérdezések között (Query Builder kapcsoló)

Ez az adatforrás a **Kiválasztás** és a **Választógomb** típusnál érhető el, ha a JetEngine aktív. Egy szűrő és egy **Listing Grid** több lekérdezés eredményét tudja mutatni, nem kell hozzá több lista. Előfeltétel: két vagy több azonos típusú lekérdezés a Query Builderben (a példában „Minden könyv”, „Papírkönyvek”, „E-könyvek”, „Hangoskönyvek”).

1. Nyisd meg az **Intelligens szűrők → Új hozzáadása** oldalt, add meg a nevet, és válaszd a **Kiválasztás** vagy a **Választógomb** típust.
2. Az **Adatforrás** legyen **JetEngine Query Builder kapcsoló**.
3. A **Lekérdezés kiválasztása** mezőben válaszd ki a lekérdezéseket.
4. Szükség esetén módosítsd a **Helykitöltő** szövegét, az **Is Checkbox Meta Field** kapcsoló maradjon kikapcsolva.
5. A **Lekérdezési változó** mellett kattints a **Dynamic Tags** gombra, és válaszd a **Switch JetEngine query** lehetőséget.
6. Az **Összehasonlító operátor** maradjon **Egyenlő (=)**.
7. Töltsd ki a **Szűrőcímke** és az **Aktív szűrőcímke** mezőt, és mentsd a szűrőt.

**Választógomb** típusnál ugyanezek a beállítások kellenek, és két további kapcsoló is van: az „összes” opció hozzáadása és a **Lehetőség a rádiógombok kijelölésének megszüntetésére**. Mindkettő elhagyható.

![Választógomb szűrő a Query Builder kapcsoló forrással](./kepek/adatforras-query-builder-kapcsolo.webp)

*Választógomb szűrő a Query Builder kapcsoló forrással* (https://minta-bolt.hu/wp-admin/admin.php?page=jet-smart-filters)

A képen a **Lekérdezés kiválasztása**, a két kapcsoló és a **Lekérdezési változó** látszik.

Az oldalon:

1. Tedd az oldalra a szűrő widgetjét és a **Listing Grid** widgetet, és válaszd ki a listát.
2. A szűrő widgetjében a **Select Filter** mezőben válaszd ki az új szűrőt, a **This filter for** értéke **JetEngine**, és a **Query ID** mezőbe írd be a lekérdezések azonosítóját.
3. Minden, a szűrőben használt lekérdezésnek azonos **Query ID**-val kell rendelkeznie. Ezt a Query Builderben a lekérdezés **General Settings** részében állíthatod.
4. Ugyanezt az azonosítót add meg a **Listing Grid** widget **Haladó → Elrendezés** részén a **CSS ID** mezőben.
5. A **Listing Grid** **Tartalom** fülén, a **Custom Query** résznél kapcsold be a **Use Custom Query** kapcsolót, és válaszd ki a szűrőben alapértelmezett lekérdezést (a példában a „Minden könyv”).
6. Mentsd az oldalt.

Választógomb widgetnél a beállítások ugyanígy adhatók meg. Az oldalon a legördülő lista vagy a rádiógombok a lekérdezések nevét mutatják, és a választás váltja a lista tartalmát. Egy másik példa: [Igen/Nem szűrő lekérdezések közötti váltással](https://hub.hellowp.io/hu/plugins/jet-smart-filters/adatforras-igen-nem/).

## Vizuális szűrő AI-val készített SQL-lekérdezésből

Ebben a példában a JetEngine Query Builder AI-segített SQL-lekérdezést készít, és erre épül egy vizuális szűrő. Az oldalak két metamezőjét használja: egy **Media** típusú mező adja a képet az opciókhoz, egy szöveges mező értékei szerint történik a szűrés.

### A lekérdezés

1. A **JetEngine → Query Builder** oldalon hozz létre új lekérdezést, add meg a nevét, és a **Query Type** legyen **SQL/AI Query**.
2. A **Custom SQL Query** résznél kapcsold be az **Advanced/AI mode** kapcsolót.
3. Kattints a **Generate query with AI** gombra, és írd le szövegesen, mit szeretnél lekérdezni.
4. Ha a kapott SQL nem az, amit vártál, pontosítsd a leírást, és generálj újat.
5. Ha megfelel, kattints a **Use this query** gombra. Az eredményt a **Preview results** kapcsolóval ellenőrizheted.

A leírásnál érdemes megadni:

- melyik bejegyzéstípus (különben az AI alapértelmezésként a „post” típust feltételezheti),
- hogy az elemeknek mely meta mezői kellenek, és hogy ezek ugyanahhoz a bejegyzéshez tartoznak,
- hogy az egyedi értékeket kéred, ha a szűrőhöz csak egyedi értékek kellenek (az SQL-ben ez a `DISTINCT`, az AI az „egyedi” szót is érti),
- ha egy mező nem lehet üres, azt is.

Példa a végleges leírásra (angol nyelvű leírás is működik):

```
Post type 'page' has meta fields 'textarea-pages' and 'mediaaa'. Return distinct values from 'textarea-pages' and values from 'mediaaa' for each post. 'textarea-pages' field must not be empty.
```

A generált lekérdezés ezután az ilyen oszlopokat adja vissza: `textarea_pages` és `mediaaa`. A sorrend a lekérdezés végén szerkeszthető.

### A szűrő

1. Nyisd meg az **Intelligens szűrők → Új hozzáadása** oldalt, a **Szűrő típusa** legyen **Vizuális**.
2. Az **Adatforrás** legyen **JetEngine Query Builder**, a **Lekérdezés kiválasztása** mezőben válaszd ki az AI-val készített lekérdezést.
3. A **Tulajdonság, ahonnan az értéket vesszük** mezőbe írd az oszlop nevét, amely szerint szűrsz (`textarea_pages`). Ugyanezt használhatod a **Tulajdonság, ahonnan a címkét vesszük** mezőben is, ha az értékek maguk legyenek a feliratok.
4. A **Típus** legyen **Kép**, és add meg annak az oszlopnak a nevét, amelyből a kép jön (`mediaaa`).
5. A **Viselkedés** legyen **Jelölőnégyzet** (több opció) vagy **Rádió** (egy opció).
6. A **Lekérdezési változó** legyen annak a mezőnek a neve, amely szerint szűrsz.
7. Mentsd a szűrőt.

### A szűrő az oldalon

A blokkszerkesztőben add hozzá a **Visual** blokkot, és válaszd ki a szűrőt. A **This filter for** szolgáltatója a **Listing Grid** blokk legyen. Tedd az oldalra a **Listing Grid** blokkot a megfelelő listinggel. Elementorban ugyanígy a **Visual Filter** widget és a **Listing Grid** widget kell, a **This filter for** értéke **JetEngine**.

A nyilvános oldalon egy opció kiválasztásakor a lista azokat az elemeket mutatja, amelyeknél a mező az adott értéket tartalmazza. Kapcsolódó fejezetek: [Keresés metamezőben és bejegyzéstulajdonságban](https://hub.hellowp.io/hu/plugins/jet-smart-filters/adatforras-kereses/) (SQL/AI lekérdezéses keresés), [Adatforrások áttekintése](https://hub.hellowp.io/hu/plugins/jet-smart-filters/adatforras-attekintes/).
