Tovább a tartalomhoz

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.

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

  1. Nyisd meg a JetEngine → JetEngine → REST API Endpoints oldalt, és kattints a + New Endpoint gombra.
  2. Add meg a nevet és a végpont URL-jét, állítsd be az Items path értékét.
  3. 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.
  1. 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.
  2. 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ó.
  3. 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”).
  4. Készíts hasonló módon egy második szűrőt a másik paraméterhez („topics”).
  1. Nyisd meg a JetEngine → Query Builder → Add New oldalt.
  2. Add meg a nevet, és a Query Type legyen REST API Query.
  3. A REST API Query szakasz From Endpoint listájában válaszd ki a végpontot.
  4. A Query szakaszban az Add new gombbal vegyél fel két feltételt (clause).
  5. A Key mezőbe írd a szűrendő paraméter nevét („plugin”, illetve „topics”).
  6. 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.
  7. Mentsd a feltételt az Apply gombbal, és vedd fel ugyanígy a másodikat.
  8. Mentsd a lekérdezést az Add Query vagy Update Query gombbal.
  1. Nyisd meg a JetEngine → Listings/Components oldalt, és kattints az Add New Item gombra.
  2. 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)).
  3. Kattints a Create Listing Item gombra.
  4. 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.
  5. 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.

  1. Nyiss meg egy oldalt vagy sablont a szerkesztőben.
  2. 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.
  3. 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:

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