Tovább a tartalomhoz

A Query Builder öt gyakori hibája és javításuk

Üres űrlaplista, nem működő taxonómiaszűrő, meta-klózok rendezése, Current WP Query archív oldalon és lekérdezési változók REST API-n.

Ez a fejezet azt mutatja meg, hogyan használd helyesen a Query Buildert listázásokkal és szűrőkkel, ha bejegyzéseket vagy egyéni bejegyzéstípusokat jelenítesz meg, szűrsz taxonómia szerint, vagy lapozást használsz.

1. A lekérdezés nem adja vissza a kívánt elemeket egy űrlapban

Szekció neve “1. A lekérdezés nem adja vissza a kívánt elemeket egy űrlapban”

A hiba akkor jön elő, ha a JetFormBuilder Select, Radio vagy Checkbox mezőjének beállításai nem egyeznek a lekérdezéssel.

A lekérdezés:

  1. Hozz létre egy Posts Query típusú lekérdezést, a neve legyen például „List for Posts”.
  2. A General fülön válaszd a Posts bejegyzéstípust és a Published (publish) állapotot.
  3. A Pagination fül Posts per Page mezőjében korlátozhatod a megjelenített elemek számát.
  4. Mentsd a lekérdezést.

Az űrlap:

  1. Készíts új űrlapot, és töröld az alapból megjelenő Hidden és Text mezőket.
  2. Vegyél fel egy Radio mezőt.
  3. A FILL OPTIONS FROM értéke legyen Generate Dynamically, a GENERATOR FUNCTION pedig Get values list from JetEngine list options.
  4. A QUERY ID mezőben válaszd ki az előbb mentett lekérdezést, az OPTION VALUE mezőbe pedig írd be: post_name, hogy a bejegyzések nevei jelenjenek meg.
  5. Add hozzá az űrlapot egy oldalhoz, és nézd meg a frontenden: a bejegyzések listája látszik a rádiógomboknál.

A hiba oka többnyire az, hogy összekeverik az igazi Query ID-t és a Custom Query ID értéket. A szűrőknél ez a különbség lényeges.

Példa: vannak bejegyzéseid két kategóriával és egy egyéni bejegyzéstípusod három kategóriával, két különböző Listing Griddel jeleníted meg őket. Ha nem a megfelelő Custom Query ID-t használod, a szűrés után a két lista ugyanazokat az értékeket mutathatja, vagy üres találatot kapsz.

  1. Készíts egy Posts Query lekérdezést a bejegyzésekre, és a Custom Query ID mezőbe írj egyedi azonosítót, például filter_for_posts.
  2. Készíts egy Select szűrőt a kategóriák szerinti szűréshez: az adatforrás legyen Taxonomies, a taxonómia Categories.
  3. Hozz létre két listázást (a bejegyzésekhez és az egyéni bejegyzéstípushoz), és tedd mindkettőt az oldalra. Add az oldalhoz a Select Filter widgetet, és válaszd ki benne a szűrőt.
  4. A widgetnél a This filter for értéke legyen JetEngine, az Apply type AJAX vagy Mixed, az Apply on pedig Value change. A Query ID mezőbe írd be a lekérdezés Custom Query ID értékét (itt filter_for_posts).
  5. A szűrendő Listing Grid widget Advanced fülén a CSS ID mezőbe írd be ugyanezt az azonosítót.
  6. Tedd közzé az oldalt, és próbáld ki a frontenden.

3. Rendezés és szűrés meta-klózzal (Query Class Name)

Szekció neve “3. Rendezés és szűrés meta-klózzal (Query Class Name)”

A Query Class Name egy belső érték, amely megmondja a rendszernek, melyik metaszabályt kövesse. Akkor hasznos, ha metadobozzal felvett adatok alapján szűrsz és rendezel.

Példa: a bejegyzéseknek van egy „Rating” metamezőjük, és csak a 3-nál nagyobb értékűeket akarod, értékelés szerint rendezve.

  1. Nyisd meg a lekérdezés Meta Query fülét, és kattints az Add new clause gombra.
  2. A Field key/name mezőbe írd: rating. A Compare operátor legyen Greater than (>), a Value to compare 3, a Type Numeric.
  3. A Create name mezőbe írd a klóz nevét, például „Rating Clause”.
  4. A General fül Order & Order By részén kattints az Add new sorting parameter gombra. Az Order By legyen Order by meta clause, válaszd ki az előbb létrehozott klózt, és állítsd be a sorrendet.

A Current WP Query típussal az archív oldalakon jeleníthetsz meg bejegyzéseket úgy, hogy a lekérdezés a hely szerint változik. Így nem kell minden kategóriaoldalhoz külön lekérdezés.

  1. Hozz létre új lekérdezést, adj neki nevet, a Query Type legyen Current WP Query.
  2. A megjelenő Current WP Query részben kattints az Add new page type gombra. A Page Type legyen Categories, a Posts number mezőbe írd a megjelenítendő elemek számát.
  3. Add hozzá ugyanígy a Post oldaltípust is a saját elemszámával.
  4. Mentsd a lekérdezést az Add/Update Query gombbal.
  5. Hozz létre egy archív sablont (ehhez a JetThemeCore bővítmény kell), tedd bele a Listing Grid widgetet, és válaszd ki a bejegyzések listázási sablonját.
  6. A Custom Query részben kapcsold be a Use Custom Query kapcsolót, és a legördülő listából válaszd ki a lekérdezést.

Az archív oldal így mindig az aktuális kategória bejegyzéseit mutatja. Ha a Bejegyzések → Kategóriák oldalon a kívánt kategória alatti Megtekintés linkre kattintasz, az ahhoz tartozó bejegyzéseket látod.

5. Lekérdezési argumentumok és változók REST API-n keresztül

Szekció neve “5. Lekérdezési argumentumok és változók REST API-n keresztül”

A lekérdezési változók a WordPress-lekérdezések viselkedését módosító paraméterek. Ha például a mobilon megjelenő elemek számát korlátozod, külső alkalmazás ezt nem tudja átállítani. A lekérdezési változók ezt lehetővé teszik.

Példa: a Pagination beállításban változóval adod meg az elemszámot.

  1. A korábban létrehozott lekérdezésnél kapcsold be a Register Rest API Endpoint kapcsolót.
  2. Add meg a QUERY ARGUMENT NAME értékét (például posts-count) és a DEFAULT VALUE értékét (például 2).
  3. A Pagination részben a Posts Per Page mező melletti Dynamic Tag ikonra kattintva válaszd a Query Variable lehetőséget, és a Variable Name mezőbe írd: posts-count.
  4. Kattints az Apply, majd az Update Query gombra.
  5. A működést kipróbálhatod: másold ki a lekérdezésnél megjelenő, lekérdezési argumentumokat tartalmazó REST API-végpont példa-URL-jét, és nyisd meg a böngészőben. Az adatok rendezetlenül jelennek meg, a Pretty-print linkre kattintva viszont látod, hogy csak két bejegyzés szerepel az eredményben.

Használhatom ugyanazt a lekérdezést több oldalon? Igen. A Query Builder egyik fő előnye az újrahasznosíthatóság: egy lekérdezés több Listing Gridet vagy widgetet is kiszolgálhat, így a szűrési logika egységes marad.

Gyorsítja a Query Builder az oldalt? Önmagában nem, de a jól megírt lekérdezések kevesebb felesleges adatbázis-műveletet jelentenek. A jól megírt lekérdezés, a lapozás és a gyorsítótár együtt javíthatja a betöltési időt.

Lekérdezhetek felhasználókat, kifejezéseket és hozzászólásokat? Igen. A Query Builder több típust támogat: bejegyzések, felhasználók, kifejezések, hozzászólások, SQL, REST API és egyéni lekérdezés.

Jobb a Query Builder, mint az Elementor beépített lekérdezése? Rugalmasabb: összetett szűrést, több forrást, újrahasznosítható lekérdezéseket, SQL-t és REST API-kérést is tud.

Működik az egyéni tartalomtípusokkal (CCT)? Igen. CCT-elemekre közvetlenül készíthetsz lekérdezést, anélkül hogy bejegyzéssé kellene alakítanod őket.

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