Tovább a tartalomhoz

Kapcsolt elemek és kapcsolati meta mezők szűrése

A JetEngine kapcsolatok szűrése: kapcsolt elemek szűrője a dinamikus címkével, és szűrés a kapcsolat meta mezője szerint SQL lekérdezéssel.

A JetEngine Relations (kapcsolatok) funkciójával egyéni bejegyzéstípusok, egyéni tartalomtípusok, felhasználók és taxonómiák köthetők össze. Ez a fejezet kétféle szűrést ír le: a kapcsolt elemek szűrését, és a kapcsolatok saját meta mezői szerinti szűrést. Előfeltétel: aktív JetEngine létrehozott kapcsolatokkal, és aktív JetSmartFilters; a szerkesztő Elementor, Gutenberg vagy Bricks lehet.

A példában két bejegyzéstípus között van kapcsolat: „Osztályok → Szolgáltatások”. A szolgáltatások listáját osztályok szerint szűrjük.

  1. Nyisd meg az Intelligens szűrők → Új hozzáadása oldalt, és add meg a Szűrő neve mezőt.
  2. Válaszd ki a többválasztós típust, a példában a Kiválasztás típust.
  3. Ha hierarchikus szűrőt szeretnél, kapcsold be az Is hierarchical kapcsolót.
  4. Az Adatforrás legyen Bejegyzések. Ha kell, add meg a helyőrzőt, és válaszd ki a bejegyzéstípust (a példában az „Osztályok”).
  5. Az Is Checkbox Meta Field kapcsoló maradjon kikapcsolva. Az Include/Exclude mezőben kizárhatsz vagy bevonhatsz bejegyzéseket.
  6. A Query Variable mezőben kattints a dinamikus címke ikonra, és válaszd a JetEngine: filters children items list by parents IDs (a gyermekek szűrése a szülők azonosítói alapján) vagy a JetEngine: filters parents items list by children IDs (a szülők szűrése a gyermekek azonosítói alapján) lehetőséget. A példában az első kell.
  7. A megnyíló ablakban válaszd ki a kapcsolatot.
  8. Az összehasonlító operátor maradjon Equal (=), majd kattints az Update gombra.
  1. Készíts listing elemet a szűrendő elemekhez (bejegyzéstípus, tartalomtípus, felhasználó vagy taxonómia). A tartalmat dinamikus widgetekkel vagy blokkokkal jelenítsd meg.
  2. Az oldalon add hozzá a Listing Grid widgetet, és válaszd ki a listing elemet.
  3. Add hozzá a Kiválasztás szűrő widgetjét, és válaszd ki a létrehozott szűrőt.
  4. Tedd közzé az oldalt.

A nyilvános oldalon a legördülő lista valamelyik elemét kiválasztva a lista a hozzá kapcsolt (a példában gyermek) elemeket mutatja.

Szűrés a kapcsolat meta mezője szerint

Szekció neve “Szűrés a kapcsolat meta mezője szerint”

Ha a kapcsolatnak saját meta mezője van, az alapértelmezett szűrők nem érik el. Ilyenkor két egyéni SQL lekérdezés kell a JetEngine Query Builderében, a két lekérdezést pedig egy szűrő és egy listing köti össze.

1. A szűrő értékeit adó lekérdezés

Szekció neve “1. A szűrő értékeit adó lekérdezés”
  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 SQL/AI lekérdezés.
  3. A Custom SQL Query részben a From table a jet_rel_default_meta tábla legyen: ebből olvassa a lekérdezés a kapcsolat meta mezőinek értékét.
  4. Ha a kapcsolat beállításaiban a Register separate DB table kapcsoló be van kapcsolva, külön tábla jön létre jet_rel_81_meta néven, ahol a 81 a kapcsolat azonosítója. Ilyenkor ezt a táblát válaszd. A kapcsolat azonosítója a kapcsolat szerkesztőoldalának URL-jében látható.
  5. A Where részben adj hozzá egy feltételt: a Column a meta_key, a Compare az Equal, a Value pedig a kapcsolat meta mezőjének neve.
  6. Ha a külön táblát nem használod, egy második feltétel is kell: a Column a rel_id, a Compare az Equal, a Value a kapcsolat azonosítója, a Type pedig Numeric.
  7. Az előnézetben a meta_value oszlop tartalmazza a kapcsolat meta mezőjének értékét, amelyből a szűrő felépül. Mentsd a lekérdezést.
  1. Nyisd meg az Intelligens szűrők → Új hozzáadása oldalt, és válaszd a szűrő típusát (a példában Választógomb).
  2. Az Adatforrás legyen JetEngine Query Builder, és válaszd ki az előző lépés lekérdezését.
  3. A Property to get Value from és a Property to get Label from mezőbe írd: meta_value.
  4. A Query Variable mező is meta_value legyen.
  5. Mentsd a szűrőt.
  1. A Query Builderben vegyél fel egy újabb SQL/AI lekérdezés típusú lekérdezést.
  2. Válaszd ki azt a táblát, amelyben a szűrendő elem tárolódik. Egyéni tartalomtípusnál ez a CCT táblája, bejegyzéstípusnál a posts tábla.
  3. Kapcsold be a Use Join kapcsolót, a Join Type legyen Inner Join, és csatold a jet_rel_default_meta táblát (külön táblánál azt a táblát).
  4. A current table column mezőben azt az oszlopot add meg, amely a kapcsolat szűrendő elemének felel meg. Ha az egyéni tartalomtípus a kapcsolat szülő eleme, ez a parent_object_id. Az is equal to other table column mező egyéni tartalomtípusnál a _ID, a posts tábla esetében az ID.
  5. A Where részben vegyél fel feltételt: a jet_rel_default_meta.meta_key legyen Equal a kapcsolat meta mezőjének nevével. Így csak azok az elemek jönnek le, amelyeknek van értéke ebben a meta mezőben.
  6. Ha a kapcsolat bejegyzéstípust használ, adj meg egy feltételt a bejegyzéstípusra is: a posts.post_type legyen Equal a bejegyzéstípus nevével.
  7. Mentsd a lekérdezést.
  1. Nyisd meg a JetEngine → Listings oldalt, és kattints az Add New gombra.
  2. A Listing source legyen Query Builder, a Query mezőben válaszd ki az előbb létrehozott lekérdezést.
  3. Add meg a listing nevét, válaszd ki a listing nézetét, majd kattints a Create Listing Item gombra.
  4. A sablonban a Dynamic Field widgettel jelenítsd meg az adatokat. A lekérdezés mezőit az objektummezők listájának Query szakaszában találod, ezt kell választani. A kapcsolat meta mezőjének értéke a meta_value mezővel jeleníthető meg.
  1. Add hozzá az oldalhoz a szűrő widgetjét és a Listing Grid widgetet.
  2. A Listing Grid listingjének válaszd ki az előző lépésben létrehozott listing elemet.
  3. Nyisd meg a nyilvános oldalt: a szűrőben kijelölt értékhez tartozó elem jelenik meg a Listing Gridben.

A lekérdezésekről és a Query Builderről a JetEngine saját fejezetei írnak, a szűrők adatforrásáról az Szűrők a Query Builder lekérdezéseiből fejezet.

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