API-lekérdezések
Külső JSON API adatainak megjelenítése lekérdezési ciklussal: kérés, engedélyezés, válaszútvonal, lapozás, gyorsítótár, hibák és korlátok.
A lekérdezési ciklus külső API-ból is le tud kérni JSON-adatot, és a visszakapott tömb elemeit cikluselemként jeleníti meg. API-lekérdezést akkor használj, ha az adat nem a WordPressben van:
- egy külső készletnyilvántartó rendszer termékei,
- egy nyilvános API receptjei, könyvei, eseményei vagy állásai,
- egy másik WordPress-oldal REST API-ja,
- egy egyedi háttérrendszer strukturált adata,
- egy táblázat vagy no-code eszköz, amely JSON-t ad egy végponton.
Hogyan működik?
Szekció neve “Hogyan működik?”Az API-lekérdezési ciklus ebben a sorrendben dolgozik:
- A ciklus elem lekérdezéstípusa API.
- Az API-beállítások ablakban beállítod a kérést.
- A Bricks a legtöbb API-beállításban feldolgozza a dinamikus adatot.
- A Bricks összeállítja a kérés URL-jét, fejléceit, engedélyezését, törzsét és lapozási paramétereit.
- Ha a gyorsítótár be van kapcsolva, ellenőrzi azt.
- A kérést a WordPressen keresztül elküldi.
- A JSON-választ dekódolja.
- Kinyeri a beállított válaszútvonalat.
- A kinyert tömb lesz a lekérdezés eredménye.
- A ciklus a tömb minden elemét egyszer jeleníti meg.
Csak tömbadat járható be. Ha a válaszútvonal objektumra, szövegre, számra vagy nem létező útvonalra mutat, a ciklus nem tudja megjeleníteni a kívánt eredményhalmazt.
API-lekérdezési ciklus létrehozása
Szekció neve “API-lekérdezési ciklus létrehozása”- Adj hozzá egy támogatott ciklus elemet: Tároló, Blokk vagy Div.
- Kapcsold be a Lekérdezési ciklus kapcsolót.
- A Lekérdezés vezérlőben a Típus legyen API.
- Kattints az API-beállítások gombra.
- Add meg az API URL-jét és a kérés beállításait.
- Kattints az Adatok lekérése gombra az előnézeti panelen.
- Állítsd be a válaszútvonalat úgy, hogy a bejárni kívánt tömbre mutasson.
- Mentsd az API-beállításokat.
- Adj hozzá gyermekelemeket a cikluson belül.
- Az egyes elemek mezőit a
{query_api}dinamikus címkékkel jelenítsd meg.

A képen az API-beállítások ablak látszik: bal oldalon az API: kérelem beállításai (név, URL, HTTP metódus, engedélyezés, headerek), jobb oldalon az API: Válasz előnézet az Adatok lekérése gombbal. Az ablak tetején a felirat figyelmeztet: ez kísérleti funkció, és API-kéréseknél a lekérdezési szűrők és az összetevők nem támogatottak.
Az API-beállítások ablak
Szekció neve “Az API-beállítások ablak”Az ablak bal oldalán a beállítások, jobb oldalán a válasz előnézete van. Építés előtt érdemes az előnézettel ellenőrizni a kérést: ha a Bricks nem tudja lekérni vagy értelmezni a választ, először a kérést javítsd.
Kérésbeállítások
Szekció neve “Kérésbeállítások”Az API-beállítás belső elnevezése, nem kötelező. Ha egy oldalon több API-lekérdezés van, segít megkülönböztetni őket. Például: Books API, Events endpoint, Remote WP posts.
Kötelező. Annak a végpontnak a teljes URL-je, amely JSON-t ad vissza. Például:
https://example.com/wp-json/wp/v2/postsAz URL-ben a dinamikus adat támogatott. A név és a válaszútvonal nem kapja meg a dinamikus adat feldolgozást.
HTTP metódus
Szekció neve “HTTP metódus”Két metódus választható: GET és POST. A szokásos, csak olvasó listákhoz GET kell. POST-ot akkor használj, ha az API törzset vár.
Headerek
Szekció neve “Headerek”A Bricks alapból ezeket a fejléceket küldi:
Content-Type: application/jsonUser-Agent: BricksBuilder/{CURRENT_VERSION}A Hozzáadás header gombbal további fejléceket adhatsz meg, vagy felülírhatod az alapértelmezetteket.
URL-paraméterek
Szekció neve “URL-paraméterek”Az URL-paraméterek a végpont lekérdezési karakterláncához adódnak. Példa:
| Kulcs | Érték |
|---|---|
limit |
5 |
category |
news |
Ha az URL már tartalmaz lekérdezési paramétereket, a Bricks egyesíti a meglévőket a beállítottakkal.
Kérés törzse
Szekció neve “Kérés törzse”A kérés törzsének beállításai POST kérésnél jelennek meg. Három törzstípus támogatott:
- JSON,
- Form Data,
- x-www-form-urlencoded.
JSON esetén a nyers JSON-törzset írd be. Űrlap módokban kulcs-érték sorokat adj meg. A lapozási paraméterek is a törzsbe kerülhetnek, ha a lapozás a törzs helyét használja.
Engedélyezés
Szekció neve “Engedélyezés”A Bricks ezeket támogatja:
- API-kulcs,
- Bearer token,
- Basic Auth.
Az API-kulcsot a fejlécben vagy az URL-paraméterekben is elküldheted. A Bearer token és a Basic Auth az Authorization fejlécet használja.
Érzékeny értékeknél kapcsold be az engedélyezésnél a PHP-konstans használatát. Ilyenkor a Bricks a titkos adatot egy PHP-konstansból olvassa, nem a szerkesztőben tárolja. A konstansok nevei a lekérdezés elemének azonosítójából épülnek fel:
define( 'BRX_QUERY_API_KEY_ABC123', 'your-api-key' );define( 'BRX_QUERY_BEARER_TOKEN_ABC123', 'your-token' );define( 'BRX_QUERY_BASIC_AUTH_USERNAME_ABC123', 'username' );define( 'BRX_QUERY_BASIC_AUTH_PASSWORD_ABC123', 'password' );Az ABC123 helyére a lekérdezés elemének azonosítója kerül nagybetűvel. Éles hitelesítő adatokhoz használj konstansokat: a szerkesztőben tárolt titkos adatok könnyebben kiszivároghatnak exportban, képernyőképen vagy a csapattagok hozzáférésén keresztül.
Dinamikus adat az API-beállításokban
Szekció neve “Dinamikus adat az API-beállításokban”Az API-beállítások legtöbb szöveges mezőjében használhatsz Bricks dinamikus adatot. Ide tartozik az URL, a fejlécek, a paraméterek, a törzs értékei és az engedélyezési értékek, ha közvetlenül a beállításokban vannak tárolva.
Szándékosan nem dolgozza fel a dinamikus adatot:
- az API neve,
- a válaszútvonal.
A dinamikus API-beállítások a kérés pillanatában, az aktuális oldal környezete szerint oldódnak fel. Ez olyan végpontoknál hasznos, amelyek az aktuális bejegyzéstől, felhasználótól, kifejezéstől vagy az URL állapotától függenek. Példák:
https://example.com/api/events?city={acf_city}{ "postId": "{post_id}"}Válasz előnézete
Szekció neve “Válasz előnézete”Az Adatok lekérése gombbal előnézetet kapsz a válaszról. Az előnézetben láthatod:
- a teljes válaszfát,
- a kinyert válaszútvonalat,
- a nyers JSON nézetet,
- az utolsó lekérés idejét,
- a hibaállapotot.
Ha az utolsó lekérés óta módosítottad a beállításokat, a Bricks kéri, hogy az előnézet használata előtt kérd le újra az adatokat. Nagy kinyert tömböknél előfordulhat, hogy az előnézet csak az első részt mutatja, de a mentett API-lekérdezés rendereléskor a beállított választ használja.
Válaszútvonal
Szekció neve “Válaszútvonal”A Válasz elérési útja megmondja, hogy a JSON-válasz melyik része legyen a ciklus eredménye. Hagyd üresen, ha a válasz legfelső szintje már maga a bejárni kívánt tömb. Beágyazott adatnál pontos jelölést használj:
data.resultsPéldaválasz:
{ "data": { "results": [ { "name": "Recipe A" }, { "name": "Recipe B" } ] }}Ehhez a válaszhoz az útvonal: data.results.
API-mezők megjelenítése
Szekció neve “API-mezők megjelenítése”A ciklusban a query_api dinamikus címkét használd.
Alapmező:
{query_api @key:'name'}Beágyazott mező:
{query_api @key:'title|rendered'}A függőleges vonal (|) választja el a beágyazott kulcsokat az aktuális tömbelemen belül.
Az API-válasz előnézetében egy mező fölé víve a kurzort kimásolhatod a kész dinamikus adatcímkét. Parancsikont is létrehozhatsz, ami megjelenik a dinamikus adatok választójában.
Lapozás
Szekció neve “Lapozás”Az API-lekérdezési ciklusok támogatják a lapozást, ha az API fogadhat oldal- vagy eltolás-paramétert, és a válasz oldalszámot vagy elemszámot is megad. A lapozás bekapcsolása:
- Kapcsold be az API-beállításokban a Van lapozás lehetőséget.
- Adj hozzá egy Lapozás elemet az oldalhoz.
- Állítsd a Lapozás elemet az API-lekérdezés célzására.
- Válaszd ki a lapozási módszert.
- Állítsd be, hová küldje a Bricks a lapozási paramétert.
- Állítsd be a teljes elem-/oldalszám útvonalát.
A paraméter helye lehet: URL-paraméter, fejléc vagy a kérés törzse.
Oldalszám alapú lapozás
Szekció neve “Oldalszám alapú lapozás”Akkor használd, ha az API oldalszámot vár, például page=3. A WordPress REST API-hoz:
| Beállítás | Példa |
|---|---|
| URL-paraméter | page |
| Oldalankénti elemek paramétere | per_page=10 |
| Teljes szám útvonala | header.x-wp-totalpages |
Oldalszám alapú lapozásnál a Bricks a kinyert teljes értéket az oldalak teljes számának tekinti.
Eltolás alapú lapozás
Szekció neve “Eltolás alapú lapozás”Akkor használd, ha az API eltolást vagy kihagyási értéket (offset, skip) vár, például limit=5&skip=10.
- Az oldalparaméter legyen az az eltolás- vagy kihagyási paraméter, amelyet a Bricks frissít.
- Az eltolás kulcsa az a paraméter vagy fejléc, amely az oldalankénti elemszámot tartalmazza.
- Az oldalankénti elemszám URL-paraméterben vagy fejlécben maradjon, hogy a Bricks ki tudja számolni az oldalak számát.
- A teljes szám útvonala numerikus teljes elemszámra mutasson.
Eltolás alapú lapozásnál a Bricks a teljes elemszámot elosztja az oldalankénti elemszámmal, így kapja meg az oldalak számát.
Gyorsítótár időtartama
Szekció neve “Gyorsítótár időtartama”Az API-válaszokat a Bricks WordPress átmeneti adatokkal (transient) gyorsítótárazza, ha a Gyorsítótár időtartama (sec) nagyobb, mint 0. Az alapértelmezett érték 300 másodperc (öt perc).
- A 0 kikapcsolja a gyorsítótárazást.
- Fejlesztés közben állíts be rövid értéket.
- Lassú vagy kérésszámra korlátozott API-nál állíts be hosszabbat.
A gyorsítótár kulcsa a kérés részleteiből épül fel: végpont, metódus, fejlécek, URL-paraméterek és törzs. A különböző kérésparaméterek különböző gyorsítótár-bejegyzéseket hoznak létre. Ha az API-válasz nem a várt módon frissül, csökkentsd a gyorsítótár időtartamát, ideiglenesen állítsd 0-ra, vagy kattints az Adatok lekérése gombra az API-beállítások ablakban: ez törli az adott elem API-gyorsítótárát.
Hibaállapotok
Szekció neve “Hibaállapotok”A Bricks hibát jeleníthet meg vagy adhat vissza:
- hiányzó vagy érvénytelen API-végpont,
- WordPress-kérési hiba,
- HTTP-hiba (például 401, 403, 404 vagy 500),
- üres választörzs,
- JSON-dekódolási hiba,
- érvénytelen lapozásbeállítás,
- hiányzó teljes szám útvonal lapozáshoz,
- olyan válaszútvonal, amely nem a várt adatra mutat.
Gyakori megoldások:
- Teszteld a végpontot böngészőben vagy API-kliensben.
- Ellenőrizd, hogy az API JSON-t ad vissza, nem HTML-t.
- Ellenőrizd a hitelesítő adatokat vagy a PHP-konstansokat.
- A CORS-t csak akkor ellenőrizd, ha egyéni frontend szkriptek hívják közvetlenül az API-t. A Bricks szerveroldali kéréseket indít a WordPressen keresztül.
- A válaszútvonal a tömbre mutasson, ne egyetlen objektumra.
- Hibakeresés közben állítsd ideiglenesen 0-ra a gyorsítótár időtartamát.
Korlátok
Szekció neve “Korlátok”Az API-lekérdezési ciklusok szándékosan szűkebbek a bejegyzés-, kifejezés- és felhasználó-lekérdezéseknél:
- nincsenek lekérdezési szűrők,
- nincs élő keresés,
- nincsenek Bricks komponensek,
- csak JSON-válasz használható,
- a válasznak tömbre kell feloldódnia,
- a
query_apidinamikus címkéken kívül nincs beépített sémaleképezés, - távoli URL-ekről nincs automatikus médiaimport,
- korlátozott kérésszámú API-knál nincs automatikus újrapróbálkozás vagy késleltetés,
- a titkos adatokat gondosan, PHP-konstansokon keresztül kezeld.
Ha szűrésre, keresésre, rendezésre vagy összetett adatösszekapcsolásra van szükséged, fontold meg a külső adat WordPressbe szinkronizálását vagy egyéni integráció építését.
Gyakorlati példák
Szekció neve “Gyakorlati példák”WordPress REST API bejegyzések
Szekció neve “WordPress REST API bejegyzések”- URL:
https://example.com/wp-json/wp/v2/posts - URL-paraméter:
per_page=6 - Válaszútvonal: hagyd üresen, mert a WordPress REST API legfelső szinten tömböt ad vissza.
- Megjelenítendő mezők:
{query_api @key:'title|rendered'}{query_api @key:'excerpt|rendered'}DummyJSON termékek
Szekció neve “DummyJSON termékek”- URL:
https://dummyjson.com/products - URL-paraméter:
limit=8 - Válaszútvonal:
products - Megjelenítendő mezők:
{query_api @key:'title'}{query_api @key:'price'}{query_api @key:'thumbnail'}Hibaelhárítás
Szekció neve “Hibaelhárítás”A ciklus nem jelenít meg semmit. Ellenőrizd, hogy a válaszútvonal tömbre mutat-e. Ha az API objektumot ad vissza, benne a tömbbel, a válaszútvonalat a beágyazott tömbre állítsd.
Az előnézet működik, de a frontend kimenete elavult. Ellenőrizd a gyorsítótár időtartamát. Az előnézet és a frontend is használhat gyorsítótárazott választ, amíg a gyorsítótár be van kapcsolva.
A hitelesítés egy felhasználónál működik, a másiknál nem. Hitelesítő adatokhoz PHP-konstansokat használj a szerkesztőben tárolt titkos adatok helyett. Ellenőrizd, hogy a konstansok nevei a lekérdezés elemének nagybetűs azonosítóját használják.
A lapozás mindig csak egy oldalt mutat. Ellenőrizd a teljes elemszám útvonalát. Oldalszám alapú lapozásnál az oldalak teljes számára kell feloldódnia, eltolás alapúnál a teljes elemszámra, és a Bricksnek meg kell tudnia állapítani az oldalankénti elemszámot.
Az eltolás alapú lapozás rossz oldalt ad. Az eltolás kulcsa az a paraméter legyen, amely a kiszámított eltolást kapja. A limit=5&skip=10 esetén az eltolás kulcsa a skip, a limit pedig az oldalankénti elemszám.
A dinamikus címkék hiányoznak egy másik böngészőben. Az API-ablakban létrehozott parancsikonok a böngésző helyi tárolójában (localStorage) vannak. Hozd létre újra a parancsikont abban a böngészőben, vagy írd be kézzel a query_api címkét.
A lekérdezési szűrők nem jelennek meg az API-lekérdezés beállításaiban. Ez a normális működés: az API-lekérdezési ciklusok nem támogatják a lekérdezési szűrőket és az élő keresést.
Készült: