REST API elemek szűrése
REST API végpont elemeinek szűrése több paraméter szerint JetSmartFilters szűrőkkel és a JetSmartFilters Query makróval.
A JetEngine REST API lekérdezésével kapott elemeket is szűrheted a JetSmartFilters szűrőivel. Ehhez egy REST API Query típusú lekérdezés kell a JetSmartFilters Query makróval, egy arra épülő listing sablon, valamint a Listing Grid és a szűrők az oldalon.
Követelmények
Szekció neve “Követelmények”- Elementor (ingyenes), Gutenberg vagy Bricks.
- JetSmartFilters és JetEngine aktív, a JetEngine Rest API Listings modulja bekapcsolva.
A példában egy végpont elemeit a „plugin” és a „topics” paraméter szerint szűrjük.
A REST API végpont regisztrálása
Szekció neve “A REST API végpont regisztrálása”- Nyisd meg a JetEngine → JetEngine → REST API Endpoints oldalt, és kattints a + New Endpoint gombra.
- Add meg a nevet és a végpont URL-jét, állítsd be az Items path értékét.
- A Send Request gombbal próbáld ki a kapcsolatot. Ha a Status mezőben zöld Connected felirat jelenik meg, mentsd a végpontot a Save gombbal.
A szűrők
Szekció neve “A szűrők”- Az Intelligens szűrők → Új hozzáadása oldalon add meg a nevet, és válaszd ki a szűrő típusát: Kiválasztás, Választógomb, Vizuális vagy Jelölőnégyzetek listája.
- Az Adatforrás mezőben azt a forrást válaszd, amelyből az opciók jönnek. A példában a JetEngine-szójegyzék szolgál: elkészítettük a bővítmények listáját szójegyzékként, és a Szójegyzék kiválasztása listában azt jelöltük ki. Bármilyen más, az igényeidnek megfelelő forrás is jó.
- A Lekérdezési változó mellett kattints az adatbázis ikonra, és válaszd a Plain Query Variable lehetőséget. A Variable Name legyen a REST API paraméter neve (a példában „plugin”).
- Készíts hasonló módon egy második szűrőt a másik paraméterhez („topics”).
A REST API Query
Szekció neve “A REST API Query”- Nyisd meg a JetEngine → Query Builder → Add New oldalt.
- Add meg a nevet, és a Query Type legyen REST API Query.
- A REST API Query szakasz From Endpoint listájában válaszd ki a végpontot.
- A Query szakaszban az Add new gombbal vegyél fel két feltételt (clause).
- A Key mezőbe írd a szűrendő paraméter nevét („plugin”, illetve „topics”).
- A Value mezőnél kattints az adatbázis ikonra, és válaszd a JetSmartFilters Query makrót. A Type legyen Plain Query Var, a Variable Name pontosan az, amit a szűrő Lekérdezési változó mezőjében megadtál, a Result Format pedig Plain.
- Mentsd a feltételt az Apply gombbal, és vedd fel ugyanígy a másodikat.
- Mentsd a lekérdezést az Add Query vagy Update Query gombbal.
A listing sablon
Szekció neve “A listing sablon”- Nyisd meg a JetEngine → Listings/Components oldalt, és kattints az Add New Item gombra.
- A Setup Listing Item ablakban a Listing source legyen Query Builder, a Query mezőben válaszd ki az imént készített lekérdezést, add meg a Listing item name értékét, és válaszd ki a Listing view típusát (Elementor, Bricks, Timber/Twig vagy Blocks (Gutenberg)).
- Kattints a Create Listing Item gombra.
- A szerkesztőben állítsd össze az elrendezést a dinamikus widgetekkel. Dinamikus mezőnél (Dynamic Field) a Source legyen Post/Term/User/Object Data, az Object Field listában pedig a „REST API: (a végpont neve)” csoportból válaszd ki a mezőket.
- Mentsd a sablont.
Ha a mező a szójegyzék értékeit tartalmazza, a dinamikus mező az értéket mutatja. A felirat megjelenítéséhez kapcsold be a Filter field output kapcsolót, válaszd a Get labels by glossary data visszahívást (callback), és a Get labels by glossary listában jelöld ki a szójegyzéket.
Biztonsági megjegyzés a képekhez: a JetEngine a dinamikus mező kimenetét a wp_kses_post() függvénnyel tisztítja, ezért a REST API végponton át érkező képek nem biztos, hogy megjelennek. Ez védi az oldalt a káros kódoktól, például a rosszindulatú felhasználók által beszúrt JavaScripttől. Ha biztos vagy abban, hogy az adott esetben ez nem kockázat, a tisztítást kikapcsolhatod egy kódrészlettel (a sablon functions.php fájljában vagy egy kódrészlet-bővítménnyel), majd a dinamikus mező Advanced fülén a CSS Classes mezőbe írd a disable-sanitize osztályt.
Az oldalon
Szekció neve “Az oldalon”- Nyiss meg egy oldalt vagy sablont a szerkesztőben.
- Tedd rá a Listing Grid widgetet a kész listinggel, és két szűrőt. Mindkét szűrőn a This filter for értéke JetEngine legyen.
- Mentsd az oldalt, és próbáld ki a nyilvános oldalon: a szűrők kiválasztott értékei a REST API paramétereiként kerülnek a lekérdezésbe, és a lista a megfelelő elemekre szűkül.
Készült: