Tovább a tartalomhoz

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.

  1. 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.

  2. 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.

  3. Az Általános fülön állítsd be a bejegyzéstípust (itt: Bejegyzések), és mentsd az első lekérdezést.

  4. 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.

  5. 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.

  6. 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.

    https://minta-bolt.hu/wp-admin/admin.php?page=jet-smart-filters
    A Kiválasztás szűrő beállításai a Query Builder kapcsoló adatforrással
  7. 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.

  8. A lekérdezés Query ID-ját másold be a Listing Grid Haladó fülén a CSS-azonosító mezőbe.

  9. 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.

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”.

  1. 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.

  2. 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.

  3. 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).

  4. 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 neve clients_info_country, clients_info_city.

    https://minta-bolt.hu/wp-admin/admin.php?page=jet-smart-filters
    Keresés szűrő két almezővel a lekérdezési változóban
  5. 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.

  1. 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.
  2. 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.
  3. Ha akarod, kapcsold be a Lehetőség a rádiógombok kijelölésének megszüntetésére kapcsolót.
  4. 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, a filtering pedig egy tetszőleges változónév, amelynek meg kell egyeznie a Query Builderben megadott változónévvel.
  5. Töltsd ki a szűrőcímkéket, és kattints a Frissítés gombra.
https://minta-bolt.hu/wp-admin/admin.php?page=jet-smart-filters
Az ábécé szűrő beállításai: betűnként egy opció és a lekérdezési változó
  1. 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.
  2. Az egyedi SQL részben a Tábla legyen a users. A Where részben adj hozzá egy új szabályt: az oszlop display_name, az operátor Regexp.
  3. 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.
  4. 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ű.
  5. Ha akarod, add meg a rendezést (például user_login szerint, 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.
  6. 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.
  7. Kattints a Lekérdezés hozzáadása gombra.
  1. Tedd az oldalra a Listing Gridet, és válaszd ki a felhasználókat megjelenítő listinget.
  2. 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.
  3. 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.
  4. 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.
  5. 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.

  1. Hozz létre egy Dátumtartomány szűrőt a foglalási oldalra szóló leírás szerint.
  2. 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.

  1. Add hozzá a témád functions.php fá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_price helyére a saját lekérdezési változódat írd. Mentsd és aktiváld a részletet.
  2. 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.
  3. 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.
  4. 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:

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