# Saját eredményoldal és archívsablon

> Mi történik az Enter lenyomása után, hogyan készíts archívsablont vagy saját eredményoldalt a találatoknak, és hogyan jeleníthetsz meg tartalomtípusonként külön füleket.

## Mi történik keresés után

- Ha a keresésre csak egyetlen bejegyzés felel meg, a JetSearch közvetlenül arra a bejegyzésre irányít át.
- Ha több találat van, megnyílik a keresési találatok oldala, amely felsorolja a találatokat.

Az Enter lenyomása vagy az összes találat gomb a találatok oldalára visz. Ezt kétféleképp jelenítheted meg:

1. **Az alapértelmezett WordPress-keresési archívum**, amelyet a JetThemeCore vagy az Elementor Pro sablonszerkesztője testreszabhat.
2. **Egyéni eredményoldal**: egy statikus WordPress-oldal, amelyet a JetSearch beállításaiban adsz meg.

A listázáshoz a JetEngine Query Builderét és a **Listing Grid** blokkot (widgetet) használod.

## Archívsablon készítése a találatoknak (JetThemeCore)

Szükséges: JetThemeCore és JetSearch.

1. Nyisd meg a **Crocoblock → Theme Builder** oldalt.
2. Kattints a **Create new page template** gombra (fejléccel, törzzsel és lábléccel rendelkező oldalsablon).
3. A felugró ablakban kattints az **Add Condition** gombra, és a legördülő listákból válaszd ki: „Include”, „Archive”, „Search Results”. Kattints a **Create** gombra.
4. A sablonkártyán add meg a sablon nevét, és kattints az **Add body** gombra.
5. Kattints a **Create template** gombra új sablonhoz, vagy az **Add from library** gombra egy már meglévőhöz.
6. Az ablakban válaszd ki a **Template content type** értékét (Elementor vagy Block Editor), írd be a **Template name** mezőbe a nevet, és kattints a **Create** gombra.
7. A szerkesztőben add hozzá a **Listing Grid** widgetet (blokkot), és válaszd ki az előre elkészített listázósablont.
8. Kapcsold be a **Use as Archive Template** kapcsolót, hogy a lista a keresési találatokat vegye át.
9. Tedd közzé a sablont (**Publish**). Szükség esetén a **Crocoblock → Theme Builder** oldalon fejlécet és láblécet is hozzáadhatsz.

A szerkesztőben egy „No data was found” szöveg látszik. Ez normális: a tartalom csak a weboldalon jelenik meg.

A blokkszerkesztőben ugyanígy kell eljárni: add hozzá a **Listing Grid** blokkot, válaszd ki a listázóelemet, kapcsold be a **Use as Archive Template** beállítást, majd mentsd. Itt is „No data was found” szöveg látszik a szerkesztőben, a találatok a weboldalon jelennek meg.

Próbáld ki: írj egy keresőkifejezést abba a keresőmezőbe, amely az oldalon (például a fejlécben) van, és indítsd el a keresést. Az elkészített oldalsablon jelenik meg a találatokkal. A **Crocoblock → Theme Builder** oldalon a sablonhoz fejlécet és láblécet is adhatsz, hogy teljes oldalsablon legyen.

Az alapértelmezett keresési archívum lekérdezéséhez a **Query Builderben** a **Variable Name** értéke `s` legyen (lásd lent).

## Egyéni eredményoldal beállítása

### 1. Az oldal létrehozása

Menj az **Oldalak → Új oldal** menüre, és hozz létre egy oldalt (például „Keresés eredménye”).

### 2. A JetSearch beállítása

1. Nyisd meg a **Crocoblock → JetPlugins Settings → JetSearch → Ajax Search Settings** oldalt.
2. Az **Egyéni keresési találatok URL-je** mezőbe írd be az oldal webcímét.
3. Kattints az **Opciók mentése** gombra.

Egyéni oldalnál az alapértelmezett WordPress-keresési paramétert (`s`) cseréld egyedire, például `jet_search` értékre.

### 3. Lekérdezés létrehozása

1. Menj a **JetEngine → Query Builder** oldalra, és kattints az **Add New** gombra.
2. Add meg a lekérdezés nevét (például „Search Results Query”), a **Query Type** maradjon „Posts Query”.
3. A **Posts Query → General** fülön válaszd ki a **Post Type** értékét (amelyek tartalmát a listázó mutatja), a **Post Status** legyen „Publish”.
4. A **Search Keyword** mezőnél kattints a **Dynamic Tag** gombra, és válaszd a **Query Variable** makrót.
5. A **Variable Name** mezőbe írd be a keresési paramétert: egyéni eredményoldalnál a JetSearch beállításaiban megadott paramétert (például `jet_search`), az alapértelmezett archívumnál az `s` értéket.
6. Kattints az **Apply** gombra, majd tedd közzé a lekérdezést.

### 4. Listing Grid hozzáadása

1. Szerkeszd az eredményoldalt, és add hozzá a **Listing Grid** widgetet.
2. Állítsd be, milyen tartalmat jelenítsen meg.
3. A **Custom Query** fülön kapcsold be a **Use Custom Query** kapcsolót, és válaszd ki az előbb elkészített lekérdezést a **Custom Query** mezőben.

A rács ezután magától megjeleníti a keresésnek megfelelő találatokat.

![A JetSearch Ajax Search Settings oldala az Egyéni eredményoldal szakasszal](./kepek/ajax-keresesi-beallitasok.webp)

*A JetSearch Ajax Search Settings oldala az Egyéni eredményoldal szakasszal* (https://minta-bolt.hu/wp-admin/admin.php?page=jet-dashboard-settings-page&subpage=jet-search-ajax-search-settings)

A kép alján látszik az **Egyéni eredményoldal** szakasz az **Egyéni keresési találatok URL-je** mezővel; fölötte az alapértelmezett lekérdezési beállítások vannak.

### Példa: bejegyzések a találati oldalon

1. A **JetEngine → Listings** oldalon kattints az **Add New** gombra. Válaszd a **Posts** forrást, a **From post type** mezőben a „Posts” típust, add meg a listázóelem nevét és a szerkesztőt (Elementor, blokkszerkesztő vagy Bricks), majd kattints a **Create Listing Item** gombra.
2. A listázósablonba dinamikus elemeket tehetsz: **Dynamic Image** (forrás: „Post Thumbnail”) a kiemelt képhez, **Dynamic Terms** (forrás: „Categories”) a kategóriához, **Dynamic Link** (forrás: „Permalink”, felirat: `%title%`) a linkelt címhez, két **Dynamic Meta** pedig a szerzőhöz és a dátumhoz. Mentsd az **Update** gombbal.
3. Hozz létre egy oldalt, tedd rá a **Listing Grid** widgetet az új listázóelemmel, és állíts be saját „nincs találat” üzenetet a **Not found message** mezőben.
4. Tedd közzé az oldalt, és másold ki a webcímét.
5. A **Crocoblock → JetPlugins Settings → JetSearch → Ajax Search Settings** oldalon az **Ajax kereső widgetek alapértelmezett lekérdezésének beállításai** szakaszban válaszd ki a **Forrás** mezőben a keresendő tartalomtípust. Lejjebb, az **Egyéni eredményoldal** szakaszban írd be a webcímet az **Egyéni keresési találatok URL-je** mezőbe. Ha szeretnéd, a **Search Query Param** mezőben módosítsd a paraméter nevét. Kattints az **Opciók mentése** gombra.
6. Tedd a keresőt (Elementorban widget, blokkszerkesztőben blokk, Bricksben elem) egy oldalra vagy sablonba, például a fejlécbe. A **Search Query** szakaszban ellenőrizd, hogy a globális beállítások (az egyéni URL és a forrás) átvételre kerültek.
7. Próbáld ki a weboldalon: keress valamire. A WordPress alapértelmezett keresőoldala helyett az egyéni oldal nyílik meg a találatokkal.

Az átirányítás webcíme így néz ki: `https://pelda.hu/kereses-eredmenye/?jet_search=tej&jsearch`. A `jet_search` a **Search Query Param** értéke.

> **Figyelem**
>
> Ha a keresőelem **Search Query** beállításai eltérnek az alapértelmezett lekérdezési beállításoktól, a keresés után további paraméterek kerülnek az egyéni webcímbe. A tiszta webcímért és a jobb találhatóságért igazítsd a keresőelem beállításait az alapértelmezettekhez.

### Példa: WooCommerce-termékek a találati oldalon

1. Hozz létre egy oldalt, vagy nyiss meg egy meglévőt. A termékeket a JetWooBuilder **Products Grid** vagy **Products List** widgetje (a lista csak Elementorban van), illetve a JetEngine **Listing Grid** widgetje jeleníti meg. A widgetben az alapértelmezett „Products” forrást használd.
2. A **Not Found Message** mezőt átírhatod, például „Nincs találat a könyvek között” szövegre.
3. Tedd közzé az oldalt, és másold ki a webcímét.
4. Az **Ajax Search Settings** oldalon a **Forrás** mezőben a „Products” típust válaszd, az **Egyéni keresési találatok URL-je** mezőbe pedig az oldal webcímét írd. Mentsd az **Opciók mentése** gombbal.
5. A keresőelem **Search Query** szakaszában ugyanúgy ellenőrizd, hogy a globális beállítások átvételre kerültek.

Keresés után a termékoldal nyílik meg a **Products List** vagy a **Products Grid** találataival, a webcím végén a `?jet_search=…&jsearch` paraméterrel.

## Találatok tartalomtípusonként, külön füleken

Ezzel a megoldással a keresés egy oldalon indul, az eredmények egy másik oldalon, tartalomtípusonként külön fülön jelennek meg. Az üres fülek elrejthetők.

Szükséges: JetEngine (néhány bejegyzéssel és egyéni bejegyzéstípussal), JetSearch, JetTabs a **Tabs** widgettel, a JetTabs **Hide empty items** kiegészítője (az üres fülek elrejtéséhez), és egy oldal az eredmények megjelenítéséhez.

1. **JetSearch beállítása**: a **Crocoblock → JetPlugins Settings → JetSearch** oldalon a **Kérés típusa** legyen **Default (ajax admin-ajax.php request)**, az **Egyéni keresési találatok URL-je** mezőbe pedig az eredményoldal webcíme kerüljön. Mentsd az **Opciók mentése** gombbal.
2. **Lekérdezés minden típushoz**: a **JetEngine → Query Builder** oldalon hozz létre egy-egy „Posts Query” lekérdezést a bejegyzésekhez és minden egyéni bejegyzéstípushoz. A **Search Keyword** mezőben a **Dynamic Tag** → **Query Variable** legyen, a **Variable Name** értéke `jet_search`. Mentsd az **Add/Update Query** gombbal.
3. **Listázóelemek**: a **JetEngine → Listings** oldalon hozz létre egy-egy listázósablont a bejegyzésekhez és az egyéni bejegyzéstípusokhoz.
4. **Sablonok**: hozz létre egy-egy oldalt, tedd rá a **Listing Grid** widgetet a megfelelő listázóelemmel, kapcsold be a **Use Custom Query** kapcsolót, és válaszd ki a hozzá tartozó lekérdezést. Mentsd az oldalt sablonként (a **Publish** melletti nyíl → **Save as Template**), a **Site Template** jelölőnégyzettel.
5. **Keresőoldal**: egy oldalon helyezd el az **Ajax Search** widgetet. A **Search Query** szakaszban a **Custom Search Results URL** mezőbe az eredményoldal webcíme kerüljön. A **Target Widget ID** mezőbe írj egy nem létező azonosítót (például `test`), mert a találatokat a fülek mutatják, nem a widget. A **Source** listában válaszd ki a keresendő tartalomtípusokat. Add hozzá a JetTabs **Tabs** widgetet: minden fülnek legyen felirata (**Label**), a **Content Type** legyen „Template”, a **Choose Template** listából pedig a hozzá tartozó sablon.
6. **Eredményoldal**: ugyanazt a **Tabs** widgetet építsd meg a találatoknak szánt oldalon.
7. **Próba**: írj be egy keresőszót a keresőoldalon, és nyomd meg az Enter billentyűt. Az eredményoldalon a megfelelő füleken jelennek meg a találatok, az üres fül rejtve marad.
