Több lekérdezés eredményének egyesítése egy lekérdezésbe
SQL/AI lekérdezéssel két lekérdezés találatát egy Listing Gridben jeleníted meg, meghatározott sorrendben (például előbb a bekapcsolt Switcher mezős felhasználók).
Néha egyetlen lekérdezés nem elég a kívánt sorrendhez. Példák: előbb a bestseller WooCommerce-termékek, utána bizonyos kategóriák termékei; két adattár elemei egy rácsban; vagy előbb azok a felhasználók, akiknél a Switcher mező be van kapcsolva, utána a többiek. Az általános megoldás: a lista különböző részeihez külön lekérdezést készítesz, majd egy SQL lekérdezéssel összefűzöd az eredményüket.
Előfeltétel: ingyenes Elementor vagy a blokkszerkesztő, és aktív JetEngine. Az alábbi példa felhasználókra mutatja be a lépéseket.
1. Switcher mező a felhasználói metadobozban
Szekció neve “1. Switcher mező a felhasználói metadobozban”- Hozz létre felhasználókra vonatkozó metadobozt a JetEngine → Metadobozok oldalon.
- Vegyél fel bele egy Switcher típusú mezőt.
- Mentsd a metadobozt.
- A Felhasználók menüben nyisd meg a szerkeszteni kívánt felhasználókat, kapcsold be náluk a Switchert, és mentsd őket.
2. Az első lekérdezés: bekapcsolt Switcher
Szekció neve “2. Az első lekérdezés: bekapcsolt Switcher”- Nyisd meg a JetEngine → Query Builder oldalt, és kattints az Új hozzáadása gombra.
- Add meg a Név mezőt, a Lekérdezés típusa legyen Felhasználók lekérdezése.
- A Meta Query fülön adj hozzá egy feltételt: a mező kulcsa a Switcher neve, az összehasonlítás Equal (=), az érték
true, a típus Char. - Mentsd a lekérdezést.
A Switcher bekapcsolt állapotban true, kikapcsoltban false értéket tárol, ezért ez a feltétel a bekapcsolt felhasználókat adja vissza.
3. A második lekérdezés: kikapcsolt Switcher
Szekció neve “3. A második lekérdezés: kikapcsolt Switcher”- A lekérdezések listáján másold le az előzőt.
- Nevezd át, és a Meta Query feltételben az értéket cseréld
false-ra. - Mentsd.
4. SQL lekérdezés a kettő összefűzésére
Szekció neve “4. SQL lekérdezés a kettő összefűzésére”- Hozz létre új lekérdezést, a típusa legyen SQL/AI lekérdezés.
- Kapcsold be a Haladó/AI mód kapcsolót.
- Az SQL-mezőbe írd be az alábbi kódot:
SELECT IDFROM {prefix}usersWHERE ID IN (%query_results|135%{"fallback":"'999999999'"},%query_results|136%{"fallback":"999999999"})ORDER BY FIELD( ID, %query_results|135%{"fallback":"'999999999'"}, %query_results|136%{"fallback":"999999999"})
A képen az SQL/AI lekérdezés beállításai láthatók; a Haladó/AI mód bekapcsolása után itt jelenik meg az SQL-mező.
A 135 és a 136 az előző két lekérdezés azonosítója, ezeket a saját oldalad azonosítóira kell cserélned. Az azonosítót a lekérdezés szerkesztőoldalának címsorában találod. A tartalék érték (fallback) legyen olyan szám, amelyet semmilyen elem nem használ, ezért szerepel a 999999999. Ha szöveges tartalék kell, tedd egyszeres idézőjelek közé.
Bejegyzések esetén a táblát cseréld {prefix}posts-ra, a többi marad.
5. Lekérdezés a szűrőkhöz
Szekció neve “5. Lekérdezés a szűrőkhöz”Ez a lépés csak akkor kell, ha a Listing Gridet a JetSmartFilters szűrni fogja. A haladó SQL lekérdezést használó rács nem szűrhető, ezért készíts egy újabb, hagyományos lekérdezést, amely az SQL eredményét veszi alapul.
- Hozz létre új lekérdezést, típusa Felhasználók lekérdezése.
- Az Include/Exclude fülön kattints a pénzérmehalom ikonra, és az Include mezőbe illeszd be a Query Results makrót.
- A makróban válaszd ki az előző SQL lekérdezést, a Return mezőben a List of selected fields from item object lehetőséget, a vesszővel elválasztott mezők közé írd:
ID. Kattints az Apply gombra. - A Misc fülön az Order by legyen By the included list of user IDs (requires the Include parameter). Ez őrzi meg a sorrendet: előbb a bekapcsolt, utána a kikapcsolt Switcheres felhasználók.
- Mentsd a lekérdezést.
6. Listázási sablon a felhasználókhoz
Szekció neve “6. Listázási sablon a felhasználókhoz”- A JetEngine → Listings oldalon kattints az Új hozzáadása gombra.
- A Listing source legyen Users, adj nevet, a nézet Elementor vagy Blocks (Gutenberg).
- A sablonba tegyél egy Dynamic Field widgetet: a Source legyen Meta Data, a mező a Switcher.
- Kapcsold be a Filter field output kapcsolót, és válaszd a Switcher field values visszahívást.
- A Text if enabled és Text is disabled mezőbe írd a két állapot szövegét, például „Ez a felhasználó hitelesített!” és „Ez a felhasználó nem hitelesített.”
- Frissítsd a sablont.
7. Megjelenítés az oldalon
Szekció neve “7. Megjelenítés az oldalon”- Add hozzá a Listing Grid widgetet (vagy blokkot) az oldalhoz, és válaszd ki a felhasználói sablont.
- A Custom Query fülön kapcsold be a Use Custom Query kapcsolót, és válaszd ki az 5. lépésben készített lekérdezést.
- Frissítsd az oldalt.
A weboldalon előbb a bekapcsolt Switcheres felhasználók jelennek meg, utánuk a kikapcsoltak.
Készült: