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.
Kapcsolt elemek szűrése
Szekció neve “Kapcsolt elemek szűrése”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.
A szűrő létrehozása
Szekció neve “A szűrő létrehozása”- Nyisd meg az Intelligens szűrők → Új hozzáadása oldalt, és add meg a Szűrő neve mezőt.
- Válaszd ki a többválasztós típust, a példában a Kiválasztás típust.
- Ha hierarchikus szűrőt szeretnél, kapcsold be az Is hierarchical kapcsolót.
- 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”).
- Az Is Checkbox Meta Field kapcsoló maradjon kikapcsolva. Az Include/Exclude mezőben kizárhatsz vagy bevonhatsz bejegyzéseket.
- 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.
- A megnyíló ablakban válaszd ki a kapcsolatot.
- Az összehasonlító operátor maradjon Equal (=), majd kattints az Update gombra.
A lista és az oldal
Szekció neve “A lista és az oldal”- 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.
- Az oldalon add hozzá a Listing Grid widgetet, és válaszd ki a listing elemet.
- Add hozzá a Kiválasztás szűrő widgetjét, és válaszd ki a létrehozott szűrőt.
- 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”- 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 SQL/AI lekérdezés.
- A Custom SQL Query részben a From table a
jet_rel_default_metatábla legyen: ebből olvassa a lekérdezés a kapcsolat meta mezőinek értékét. - 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_metané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ó. - 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. - 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. - Az előnézetben a
meta_valueoszlop tartalmazza a kapcsolat meta mezőjének értékét, amelyből a szűrő felépül. Mentsd a lekérdezést.
2. A szűrő
Szekció neve “2. A szűrő”- 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).
- Az Adatforrás legyen JetEngine Query Builder, és válaszd ki az előző lépés lekérdezését.
- A Property to get Value from és a Property to get Label from mezőbe írd:
meta_value. - A Query Variable mező is
meta_valuelegyen. - Mentsd a szűrőt.
3. A találatokat adó lekérdezés
Szekció neve “3. A találatokat adó lekérdezés”- A Query Builderben vegyél fel egy újabb SQL/AI lekérdezés típusú lekérdezést.
- 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
poststábla. - Kapcsold be a Use Join kapcsolót, a Join Type legyen Inner Join, és csatold a
jet_rel_default_metatáblát (külön táblánál azt a táblát). - 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, apoststábla esetében azID. - A Where részben vegyél fel feltételt: a
jet_rel_default_meta.meta_keylegyen 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. - Ha a kapcsolat bejegyzéstípust használ, adj meg egy feltételt a bejegyzéstípusra is: a
posts.post_typelegyen Equal a bejegyzéstípus nevével. - Mentsd a lekérdezést.
4. A listing elem
Szekció neve “4. A listing elem”- Nyisd meg a JetEngine → Listings oldalt, és kattints az Add New gombra.
- A Listing source legyen Query Builder, a Query mezőben válaszd ki az előbb létrehozott lekérdezést.
- Add meg a listing nevét, válaszd ki a listing nézetét, majd kattints a Create Listing Item gombra.
- 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_valuemezővel jeleníthető meg.
5. Az oldal
Szekció neve “5. Az oldal”- Add hozzá az oldalhoz a szűrő widgetjét és a Listing Grid widgetet.
- A Listing Grid listingjének válaszd ki az előző lépésben létrehozott listing elemet.
- 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: