Tovább a tartalomhoz

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”
  1. Hozz létre felhasználókra vonatkozó metadobozt a JetEngine → Metadobozok oldalon.
  2. Vegyél fel bele egy Switcher típusú mezőt.
  3. Mentsd a metadobozt.
  4. 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”
  1. Nyisd meg a JetEngine → Query Builder oldalt, és kattints az Új hozzáadása gombra.
  2. Add meg a Név mezőt, a Lekérdezés típusa legyen Felhasználók lekérdezése.
  3. 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.
  4. 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”
  1. A lekérdezések listáján másold le az előzőt.
  2. Nevezd át, és a Meta Query feltételben az értéket cseréld false-ra.
  3. 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”
  1. Hozz létre új lekérdezést, a típusa legyen SQL/AI lekérdezés.
  2. Kapcsold be a Haladó/AI mód kapcsolót.
  3. Az SQL-mezőbe írd be az alábbi kódot:
SELECT ID
FROM {prefix}users
WHERE 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"}
)
https://minta-bolt.hu/wp-admin/admin.php?page=jet-engine-query&query_action=add
Új lekérdezés SQL/AI típussal, a Haladó/AI mód kapcsolóval

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.

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.

  1. Hozz létre új lekérdezést, típusa Felhasználók lekérdezése.
  2. Az Include/Exclude fülön kattints a pénzérmehalom ikonra, és az Include mezőbe illeszd be a Query Results makrót.
  3. 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.
  4. 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.
  5. 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”
  1. A JetEngine → Listings oldalon kattints az Új hozzáadása gombra.
  2. A Listing source legyen Users, adj nevet, a nézet Elementor vagy Blocks (Gutenberg).
  3. A sablonba tegyél egy Dynamic Field widgetet: a Source legyen Meta Data, a mező a Switcher.
  4. Kapcsold be a Filter field output kapcsolót, és válaszd a Switcher field values visszahívást.
  5. 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.”
  6. Frissítsd a sablont.
  1. Add hozzá a Listing Grid widgetet (vagy blokkot) az oldalhoz, és válaszd ki a felhasználói sablont.
  2. 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.
  3. Frissítsd az oldalt.

A weboldalon előbb a bekapcsolt Switcheres felhasználók jelennek meg, utánuk a kikapcsoltak.

Készült:

Tiszteletben tartjuk a magánszférádat

Sütiket használunk a böngészési élmény javítására és a forgalom elemzésére. Az analitika csak akkor indul, ha engeded. Adatvédelmi irányelvek, Sütitájékoztató.

Sütibeállítások