Tovább a tartalomhoz

Szűrés kapcsolat metamezője alapján

SQL-lekérdezések és JetSmartFilters szűrő építése a kapcsolat metamezőjének értéke szerinti szűréshez.

Ha a kapcsolatnak saját metamezője van (például szerep, időpont), az értéke alapján is szűrhetsz. Ehhez két SQL-lekérdezés, egy szűrő és egy listázási elem kell. Szükséges: aktív JetEngine és JetSmartFilters.

  1. Menj a JetEngine → Lekérdezéskészítő oldalra, és kattints az Új hozzáadása gombra.
  2. Adj nevet a lekérdezésnek (leírás is megadható), a típus legyen SQL/AI lekérdezés.
  3. Az egyéni SQL-lekérdezés részben a forrástábla a jet_rel_default_meta: innen jönnek a kapcsolat metamezőinek értékei.
  4. Ha a kapcsolatnál bekapcsoltad a Külön DB-tábla regisztrálása kapcsolót, a tábla neve más: jet_rel_<kapcsolat azonosítója>_meta (például jet_rel_81_meta). Ilyenkor azt a táblát válaszd. A kapcsolat azonosítója a szerkesztőoldal címsorában, az URL-ben látszik.
  5. Vegyél fel egy feltételt (Where): az oszlop meta_key, az összehasonlítás „Equal”, az érték a kapcsolat metamezőjének neve.
  6. Ha nincs külön DB-tábla, vegyél fel egy második feltételt is: oszlop rel_id, „Equal”, érték a kapcsolat azonosítója, a típus Numeric.
  7. Az előnézetben a meta_value oszlop tartalmazza a metamező értékét: ebből épül a szűrő.
  8. Mentsd a lekérdezést.
  1. A Smart Filters → Új hozzáadása oldalon válaszd a szűrőtípust (a példában Radio).
  2. Az adatforrás: JetEngine Query Builder, és válaszd ki az előző lekérdezést.
  3. A Property to get Value from és a Property to get Label from értéke: meta_value.
  4. A Query Variable is meta_value.
  5. Mentsd a szűrőt.
  1. Hozz létre egy új SQL/AI lekérdezés típusú lekérdezést a Lekérdezéskészítőben.
  2. A táblának válaszd ki azt, amelyben a szűrendő kapcsolódó elem tárolódik: CCT-nél a CCT táblája, bejegyzéstípusnál a posts tábla.
  3. Kapcsold be a Use Join kapcsolót. A csatlakozás típusa Inner Join, a csatlakoztatott tábla a jet_rel_default_meta (külön DB-táblánál az a tábla).
  4. A saját tábla oszlopa legyen a kapcsolat azon oldala, amelyet szűrsz: ha a szülő CCT-t szűröd, parent_object_id; a másik tábla oszlopa a CCT-nél _ID, a posts táblánál ID.
  5. A Where részben vegyél fel egy feltételt: jet_rel_default_meta.meta_key „Equal” a kapcsolat metamezőjének neve. Így csak azok az elemek kerülnek be, amelyeknek van értéke ebben a mezőben.
  6. Ha bejegyzéstípust szűrsz, vegyél fel még egy feltételt: posts.post_type „Equal” a bejegyzéstípus slugja.
  7. Mentsd a lekérdezést.
  1. A JetEngine → Listázások/komponensek oldalon kattints az Új hozzáadása gombra.
  2. A Listázás forrása legyen Lekérdezéskészítő, a lekérdezés pedig az előző SQL-lekérdezés. Add meg a listázási elem nevét és a nézetet, majd hozd létre.
  3. A sablonban a Dynamic Field widgettel jeleníthetsz meg adatokat a lekérdezésből. A Lekérdezés csoportban lévő mezőket válaszd.
  4. A kapcsolat metamezőjének értékét az egyéni objektum mezőjeként, a meta_value kulccsal írhatod ki.
  5. Mentsd a sablont.

Tedd az oldalra a szűrőt és a Listing Grid elemet, és a Listing Gridben válaszd ki az előző listázási elemet. A frontenden a szűrő egy opciójának kiválasztásakor a lista azokat az elemeket mutatja, amelyeknek a kapcsolati metamezőjében az adott érték van.

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