Egyedi szűrők: legfrissebb bejegyzések, ismétlő mező, ábécé, szezonális ár
Négy haladó szűrőmegoldás: lekérdezés-váltás, keresés ismétlő mező almezőiben, ábécé szűrő felhasználókhoz, ár szűrése a kiválasztott időszak szerint.
Ez a fejezet négy olyan szűrőmegoldást gyűjt össze, amelyhez a JetSmartFilters mellett a JetEngine lekérdezésépítője is kell.
Összes és legfrissebb bejegyzések szűrése
Szekció neve “Összes és legfrissebb bejegyzések szűrése”A cél: az oldalon alapból az összes bejegyzés látszik, a szűrő egyik opciójával pedig csak az elmúlt két hét bejegyzései. Szükséges: Elementor, blokkszerkesztő vagy Bricks, JetSmartFilters, és a JetEngine 3.2.0 vagy újabb. A JetEngine Query Builder kapcsoló adatforrás a Kiválasztás és a Választógomb szűrőnél érhető el, a Jelölőnégyzetek listája szűrő nem támogatja.
-
A JetEngine → Query Builder oldalon hozz létre két Bejegyzések lekérdezést. Az elsőt nevezd „Összes bejegyzés”-nek, a másodikat „Legfrissebb bejegyzések”-nek.
-
Mindkét lekérdezésnél add meg ugyanazt a Query ID értéket. Ez azért fontos, mert enélkül, ha az oldalon több azonos szolgáltatójú elem van, a szűrő mindegyikre hatni fog.
-
Az Általános fülön állítsd be a bejegyzéstípust (itt: Bejegyzések), és mentsd az első lekérdezést.
-
A második lekérdezésnél nyisd meg a Dátumlekérdezés (Date Query) fület, vegyél fel egy új szabályt, és az Ezután (After) mezőbe írd be:
2 weeks ago. Mentsd. -
A Smart Filters → Új hozzáadása oldalon adj nevet a szűrőnek, válaszd a Kiválasztás típust, az adatforrás legyen JetEngine Query Builder kapcsoló, és a Lekérdezés kiválasztása mezőben add meg a két lekérdezést.
-
A Lekérdezési változó melletti adatbázis ikonnal válaszd a Switch JetEngine query lehetőséget, majd frissítsd a szűrőt.

-
Tedd a Kiválasztás szűrőt és a Listing Gridet az oldalra. A Listing Gridnél válaszd ki a listinget, a Egyéni lekérdezés fülön kapcsold be az Egyéni lekérdezés használata kapcsolót, és add meg az „Összes bejegyzés” lekérdezést. Így induláskor minden bejegyzés látszik.
-
A lekérdezés Query ID-ját másold be a Listing Grid Haladó fülén a CSS-azonosító mezőbe.
-
A szűrő widgetben válaszd ki a szűrőt, a Ez a szűrő ehhez legyen JetEngine, a Query ID mezőbe pedig írd be ugyanazt az azonosítót. Mentsd az oldalt.
A „Legfrissebb bejegyzések” opciót választva a lista csak a két héten belüli bejegyzéseket mutatja.
Fontos: a szűrt szolgáltatóra egyéni lekérdezést alkalmazni kötelező. Ha a listing eleve a Query Builder forrást használja, a szolgáltatónál nem kell külön beállítani. Az egyéni lekérdezés felülírja a Listing Grid Bejegyzések száma beállítását, ezért az oldalankénti darabszámot a lekérdezés lapozási beállításainál add meg.
Keresés ismétlő mező almezőiben
Szekció neve “Keresés ismétlő mező almezőiben”A cél: egyéni bejegyzéstípus bejegyzéseit lehessen keresni a JetEngine ismétlő (Repeater) mezőjének almezői szerint. A példában az ismétlő mezőnek két almezője van: „Ország” és „Város”.
-
A JetEngine → Bejegyzéstípusok oldalon nyisd meg a bejegyzéstípust, és a Meta mezők részben ellenőrizd, hogy az ismétlő mezőnél be van kapcsolva az Mentés külön mezőkként (Save as separate fields) kapcsoló. Enélkül a keresés nem működik.
-
Ha a bejegyzéseket már kitöltötted, nyisd meg mindet, és kattints a Mentés gombra, hogy az értékek külön mezőkként is bekerüljenek az adatbázisba. Ez a lépés elengedhetetlen.
-
A Smart Filters → Új hozzáadása oldalon válaszd a Keresés típust. A Keresés módja legyen Egyéni mező szerint (lekérdezési változóból).
-
A Lekérdezési változó mezőbe az almezők kulcsait írd ebben a formában:
ismetlo-neve_almezo-neve. Ha két almezőben keresel, vesszővel válaszd el őket. A példában a mezők neveclients_info_country,clients_info_city.
-
Tedd a Keresés szűrőt és a Listing Gridet az oldalra, és kösd össze őket Query ID-val. Kattints a Közzététel gombra.
Ha a látogató például egy országnevet keres, a találatokban azok a bejegyzések jelennek meg, amelyekben az ismétlő mező valamelyik sorában ez az érték szerepel.
Ábécé szűrő a felhasználók Listing Gridjéhez
Szekció neve “Ábécé szűrő a felhasználók Listing Gridjéhez”Az Ábécé szűrő csak bejegyzésekkel és termékekkel működik, a felhasználók listájára nincs beépített változata. Ezt egy Választógomb szűrővel és egy egyedi SQL-lekérdezéssel lehet pótolni. Szükséges: Elementor, blokkszerkesztő vagy Bricks, JetSmartFilters, és a JetEngine felhasználókat megjelenítő listing elemmel.
A szűrő
Szekció neve “A szűrő”- A Smart Filters → Új hozzáadása oldalon adj nevet a szűrőnek, és válaszd a Választógomb típust. Az Adatforrás legyen Kézi bevitel.
- Az Opciók listája részben kattints az Add New gombra, és vegyél fel minden betűhöz egy opciót. A Címke a betű, az Érték pedig egy reguláris kifejezés, amely kis- és nagybetűre is illeszkedik:
^a|^A,^b|^B,^c|^C, és így tovább az összes betűre. - Ha akarod, kapcsold be a Lehetőség a rádiógombok kijelölésének megszüntetésére kapcsolót.
- A Lekérdezési változó mezőbe írd be:
_plain_query::filtering. A_plain_query::rész azt jelzi, hogy az érték sima SQL-értékként kerül a lekérdezésbe, afilteringpedig egy tetszőleges változónév, amelynek meg kell egyeznie a Query Builderben megadott változónévvel. - Töltsd ki a szűrőcímkéket, és kattints a Frissítés gombra.

Az SQL-lekérdezés
Szekció neve “Az SQL-lekérdezés”- A JetEngine → Query Builder oldalon hozz létre új lekérdezést. Adj neki nevet (például „Felhasználók ábécé szűrő lekérdezés”), a típusa legyen SQL/AI lekérdezés.
- Az egyedi SQL részben a Tábla legyen a
users. A Where részben adj hozzá egy új szabályt: az oszlopdisplay_name, az operátor Regexp. - Az Érték mező melletti dinamikus címke gombbal válaszd a JetSmartFilters Query címkét. A típus legyen Plain Query Var, a változó neve pedig
filtering(a szűrő lekérdezési változójának második fele). Alkalmazd. - Jelöld be az Ne vegye figyelembe ezt a feltételt, ha a dinamikus érték üres jelölőnégyzetet, hogy a lista ne maradjon üres, amíg nincs kiválasztott betű.
- Ha akarod, add meg a rendezést (például
user_loginszerint, növekvő, Char típussal), a megjelenítendő elemek számát (például 6), és az eltolást (például 1, hogy az első felhasználót, az adminisztrátort kihagyd). Ezek nem kötelezők. - A Az eredmény átalakítása objektumpéldánnyá mezőben válaszd a User lehetőséget, hogy a JetEngine felhasználóként értelmezze az eredményt.
- Kattints a Lekérdezés hozzáadása gombra.
Az oldal
Szekció neve “Az oldal”- Tedd az oldalra a Listing Gridet, és válaszd ki a felhasználókat megjelenítő listinget.
- Az Egyéni lekérdezés fülön kapcsold be az Egyéni lekérdezés használata kapcsolót, és add meg az SQL-lekérdezést.
- Ha egy oldalon több Listing Grid van, adj minden lekérdezéshez saját egyedi Query ID-t. A Query Builderben ezt az egyéni lekérdezés azonosító mezőbe írd, ugyanezt add meg a rács CSS-azonosító mezőjében, és a szűrő Query ID mezőjében is.
- A rács fölé tedd a Választógomb szűrő widgetet, válaszd ki a szűrőt, a Ez a szűrő ehhez legyen JetEngine. Stílusát a Stílus fülön szabhatod testre.
- Mentsd az oldalt.
Az oldalon a betűk választógombként jelennek meg, és egy betűt kiválasztva a felhasználók listája csak az adott betűvel kezdődő nevűeket mutatja.
Ár szűrése a kiválasztott időszak szerint
Szekció neve “Ár szűrése a kiválasztott időszak szerint”A JetBooking szezonális és hétvégi árai miatt egy egyszerű ártartomány-szűrő félrevezető lehet, mert az ár a napoktól és az időszaktól függ. Ez a megoldás a kiválasztott időszak tényleges árára szűr. Szükséges: Elementor vagy blokkszerkesztő, JetBooking, JetSmartFilters.
- Hozz létre egy Dátumtartomány szűrőt a foglalási oldalra szóló leírás szerint.
- Hozz létre egy Tartomány szűrőt, például „Ártartomány” névvel. A Lekérdezési változó legyen egy egyedi kulcs, például
_seasonal_price.
Fontos: az ár szerinti Tartomány szűrő a Dátumtartomány nélkül is működik, de akkor is dátumra támaszkodik: ha nincs kiválasztott dátum, a mai napot használja. A pontos eredményhez először dátumra, utána árra érdemes szűrni.
- Add hozzá a témád
functions.phpfájljához (lehetőleg gyermektémában), vagy egy kódrészlet-kezelő bővítménnyel (például Code Snippets) azt a PHP-horgot, amely a Tartomány szűrő változóját a kiválasztott időszak árához köti. A kódban a_seasonal_pricehelyére a saját lekérdezési változódat írd. Mentsd és aktiváld a részletet. - Szerkeszd az archívumoldalt, ahol a szálláshelyek listája van (a példában a JetThemeCore-ral készített archívumsablon, benne a Listing Grid). Ha a rácsban a tól-ig árat akarod mutatni, a listing elemben egy dinamikus címkét támogató widgetnél válaszd a JetBooking Ár naponta/éjszakánként címkét, és a Ár megjelenítése mezőben az Ártartomány lehetőséget. Így a legkisebb és a legnagyobb ár látszik.
- Tedd az oldalra a Dátumtartomány szűrőt, a Tartomány szűrőt és egy Alkalmaz gomb widgetet.
- A Dátumtartomány szűrőnél válaszd ki a szűrőt, a szolgáltató legyen JetEngine, és kapcsold be az alkalmaz gomb elrejtését, mert külön gombot használsz.
- A Tartomány szűrőnél válaszd ki a szűrőt, a szolgáltató legyen JetEngine, az Alkalmazás ekkor pedig Kattintás az alkalmaz gombra.
- Az Alkalmaz gombnál csak a szolgáltatót kell megadnod.
- Mentsd az archívumoldalt.
Ha egy szálláshelyen hétfőn más az ár, mint a többi napon, és a látogató csak egy bizonyos napra, egy bizonyos összegért keres, a szűrő azt a szálláshelyet is kihagyja, amelynek az adott napi ára nem fér bele a megadott határba.
Készült: