Tovább a tartalomhoz

Szűrőopciók címkéje lekérdezésből: bejegyzéscímek és metaértékek

Kapcsolt bejegyzések címe vagy metamezőjének értéke a JetSmartFilters szűrő opciócímkéjeként, SQL/AI lekérdezéssel és Join táblákkal.

Ez az útmutató megmutatja, hogyan jelenítheted meg egyéni bejegyzéstípus bejegyzéseinek címét, illetve metamezőinek értékét a JetSmartFilters szűrő opcióinak címkéjeként. Az eredmény egy szűrő, amelyben a kapcsolt (child) bejegyzések címe vagy metaértéke az opció, és a kiválasztáskor a hozzá kapcsolódó szülő bejegyzések jelennek meg a listában.

Követelmények: Elementor, blokkszerkesztő, Bricks vagy Divi; aktív JetEngine két egyéni bejegyzéstípussal és köztük beállított kapcsolattal; aktív JetSmartFilters.

A példában „Ingatlan” és „Ügynök” bejegyzéstípus van, a kettő között egy-a-többhöz kapcsolattal (egy ingatlant több ügynök kezelhet). A kapcsolatban az Ingatlan a szülő (parent), az Ügynök a gyermek (child). A kapcsolatok létrehozását a Kapcsolatok áttekintése fejezet írja le.

Itt az Ügynök bejegyzések címe a szűrő opciója. Egy ügynök kiválasztásakor az ő Ingatlan bejegyzései jelennek meg.

  1. A JetEngine → Lekérdezéskészítő oldalon kattints az Új hozzáadása gombra.
  2. Add meg a nevet (például „Bejegyzéscímek szűrőben”), a típus legyen SQL/AI lekérdezés. Az Egyéni lekérdezés-ID-t kitöltheted a könnyebb azonosításért, de üresen is hagyhatod.
  3. Az egyéni SQL lekérdezés részben a From table listából válaszd a jet_rel_default táblát.
  4. Kapcsold be a Use Join kapcsolót, és a megjelenő Join Tables blokkban kattints az Új hozzáadása gombra. A Join Type legyen „Inner Join”, a Join Table posts. A When current table column mezőbe ID kerüljön, az Is equal to other table column mezőbe child_object_id.
  5. A Where blokkban kattints az Új hozzáadása gombra: a Column legyen jet_rel_default.rel.id, a Compare Egyenlő (=), a Value a kapcsolat azonosítója (a példában 102).
  6. Mentsd a lekérdezést.
  1. A Smart Filters → Add New oldalon hozz létre új szűrőt. A neve legyen például „Ingatlan-ügynök szűrő”, a típus Select.
  2. A Data Source legyen JetEngine Query Builder, a Select Query listából válaszd az előbbi lekérdezést.
  3. A Property to get Value from mezőbe child_object_id kerüljön, a Property to get Label from mezőbe post_title.
  4. Görgess a Query Variable mezőig, kattints a dinamikus címke ikonra, és válaszd a „JetEngine: filters parents items list by children IDs” opciót. A megjelenő ablakban válaszd ki a kapcsolatot. A mezőbe így kerül a szöveg: related_parents:102, ahol a related_parents a makró neve, a 102 pedig a kapcsolat azonosítója.
  5. Az összehasonlító operátor legyen Egyenlő (=), és mentsd a szűrőt.
  1. A JetEngine → Listings/Components oldalon hozz létre listing sablont a szülő bejegyzéstípushoz (Ingatlan). Az Elementor szerkesztőben tegyél bele Dynamic Field (meta mezők) és Dynamic Image (kiemelt kép) widgetet, de tetszés szerint alakíthatod.
  2. Az oldalon a Listing Grid widget jeleníti meg a listát. Az oldalt oszd két oszlopra: a bal oszlopba a szűrő, a jobb oszlopba a lista kerül.
  3. Az előoldalon válassz egy szűrőopciót (ügynököt): a lista a hozzá kapcsolódó Ingatlan bejegyzéseket mutatja.

Itt az Ügynök bejegyzések egy metamezőjének értéke az opciócímke. A kiválasztott érték szerint jelennek meg az Ingatlan bejegyzések.

A lekérdezés beállításai megegyeznek az előzővel, kivéve a Join Tables és a Where blokkot:

  1. A Join Tables blokkban a Join Type „Inner Join”, a Join Table postmeta, az Is equal to other table column értéke child_object_id.
  2. A Where blokkban a Column legyen postmeta.key, a Compare Egyenlő (=), a Value a metamező neve (a példában note).
  3. Mentsd a lekérdezést.

A szűrő beállításai ugyanazok, mint az előzőnél, csak a Property to get Value from mezőbe meta_value kerül.

Hozz létre listing sablont az Ingatlan bejegyzéstípushoz, helyezd el a szűrőt és a listát az oldalon, mentsd az oldalt, és próbáld ki az előoldalon: a szűrő a metaértékeket kínálja opcióként, és a lista a kiválasztott értékhez tartozó bejegyzéseket mutatja.

Beállíthatok más kapcsolattípust is (például több-a-többhöz)? Igen, a munkamenet nem változik.

Milyen szűrőtípus használható? A példa Select szűrőt használ, de a jelölőnégyzet-lista (Checkboxes) és a Radio szűrő is használható.

Mit mutat a szűrő, ha a metamező üres? Az üres metamezőt nem jeleníti meg opcióként.

Használhatok különböző metamezőket különböző szűrőkhöz? Igen, minden szűrőt külön állíts be, és ahol kell, helyezd el.

Frissülnek a szűrőopciók automatikusan? Igen, a metaértékek módosításakor az adatok is frissülnek.

Az SQL/AI lekérdezés beállításairól lásd az SQL/AI lekérdezés fejezetet, a szűrők lekérdezésből való feltöltéséről a Szűrők a Lekérdezéskészítő forrásával fejezetet.

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