# Kapcsolat létrehozása bejegyzések között

> Kapcsolattípusok, kapcsolat felvétele két bejegyzéstípus között, a kapcsolódó elemek szerkesztése és megjelenítése a szülő oldalán.

Ez a fejezet két egyedi bejegyzéstípus összekötését mutatja be: a példában az **Országok** a szülő, a **Túrák** a gyermek. Szükséges egy szerkesztő (Elementor ingyenes változata, blokkszerkesztő vagy Bricks), az aktív JetEngine, két létrehozott bejegyzéstípus néhány bejegyzéssel, és az oldalsablonok készítéséhez a JetThemeCore.

## A kapcsolattípusok

- **Egy az egyhez**: egy szülőhöz pontosan egy gyermek tartozik. Például egy országnak egy fővárosa van, és a főváros nem tartozik más országhoz.
- **Egy a többhöz**: egy szülőhöz több gyermek tartozhat, de egy gyermeknek egy szülője van. Például egy szerzőnek több könyve lehet, egy könyvnek viszont egy szerzője van.
- **Több a többhöz**: mindkét oldalon több kapcsolat lehet. Például egy boltban sok termék kapható, és egy termék több boltban is.

A régi (legacy) kapcsolatoknál a szülő és a gyermek bejegyzéstípusa nem lehet azonos. A régi kapcsolatokat a **Szerkesztés** gomb mellett látható konvertálással lehet az új formára hozni (lásd: [Nagyszülő és unoka kapcsolatok](https://hub.hellowp.io/hu/plugins/jet-engine/kapcsolatok-nagyszulo-unoka/)).

## A kapcsolat felvétele

1. Menj a **JetEngine → Kapcsolatok** oldalra, és kattints az **Új hozzáadása** gombra.
2. Add meg a **Név**-et.
3. A **Szülő objektum** és a **Gyermek objektum** listából válaszd ki a két bejegyzéstípust.
4. Válaszd ki a **Kapcsolat típusa** értékét. Ha kell, állítsd be a **Szülőkapcsolat**-ot is.
5. Kapcsold be a szükséges kapcsolókat (a vezérlők regisztrálása, a szülő vagy gyermek kötelező megléte, új elemek létrehozása és törlése a másik oldalról). A pontos jelentésük az [áttekintésben](https://hub.hellowp.io/hu/plugins/jet-engine/kapcsolatok-attekintes/) van.
6. Ha kell, töltsd ki a **Feliratok**-at, és vegyél fel **Meta mezők**-et a kapcsolathoz.
7. Mentsd a kapcsolatot.

![A kapcsolat szerkesztőoldala](./kepek/kapcsolatok-szerkeszto.webp)

*A kapcsolat szerkesztőoldala* (https://minta-bolt.hu/wp-admin/admin.php?page=jet-engine-relations&cpt_relation_action=edit&id=3)

Régi típusú (legacy) kapcsolatnál az **Egyéb beállítások** között két kapcsoló volt: a szülő bejegyzéstípus vezérlőinek regisztrálása (ez adja a „Kapcsolódó gyermekek” dobozt a szülő oldalára) és a gyermek bejegyzéstípus vezérlőinek regisztrálása (ez adja a „Kapcsolódó szülő” dobozt a gyermek oldalára).

## A szülő szerkesztése

1. Nyisd meg a szülő bejegyzéstípus egy bejegyzését (itt: egy ország).
2. A szerkesztőoldalon megjelenik a gyermekeket kezelő doboz (itt: **Gyermekek Túrák**).
3. Itt hozzáadhatsz új gyermeket (**Új Túra hozzáadása**), összekapcsolhatsz egy meglévőt (**Összekapcsolás Túra**), és a sorok gombjaival szerkesztheted (**Szerkesztés**), megtekintheted (**Megtekintés**), leválaszthatod (**Leválasztás**) vagy törölheted (**Elem törlése**) a tételt.
4. Kattints a **Frissítés** gombra.

![A szülő bejegyzés szerkesztőoldala a kapcsolódó gyermekekkel](./kepek/kapcsolatok-szulo-szerkeszto.webp)

*A szülő bejegyzés szerkesztőoldala a kapcsolódó gyermekekkel* (https://minta-bolt.hu/wp-admin/post.php?post=8&action=edit)

A doboz alatt a három összekapcsolt túra látszik, soronként a műveleti gombokkal.

Az **Összekapcsolás Túra** gomb ablakában a **Túra kiválasztása** mezőben keresel a meglévő elemek között:

![Az összekapcsolás ablak](./kepek/kapcsolatok-osszekapcsolas-ablak.webp)

*Az összekapcsolás ablak* (https://minta-bolt.hu/wp-admin/post.php?post=8&action=edit)

Az **Új Túra hozzáadása** ablak csak a címet kéri (CCT-nél a **Létrehozáshoz használt mezők** is megjelennek):

![Az új elem létrehozásának ablaka](./kepek/kapcsolatok-uj-elem-ablak.webp)

*Az új elem létrehozásának ablaka* (https://minta-bolt.hu/wp-admin/post.php?post=8&action=edit)

## A gyermek szerkesztése

A gyermek bejegyzéstípus bejegyzésénél a **Szülő Országok** doboz mutatja a szülőt. Itt is összekapcsolhatsz vagy leválaszthatsz, és ha engedélyezted, új szülőt is létrehozhatsz. A módosítások a bejegyzés **Frissítés** gombjával mentődnek.

![A gyermek bejegyzés szerkesztőoldala a kapcsolódó szülővel](./kepek/kapcsolatok-gyerek-szerkeszto.webp)

*A gyermek bejegyzés szerkesztőoldala a kapcsolódó szülővel* (https://minta-bolt.hu/wp-admin/post.php?post=9&action=edit)

## Gyakorlati példa: a szülő oldalán megjelenő gyermekek

Cél: az ország oldalán megjelenjenek az országhoz tartozó túrák.

### 1. Lekérdezés

1. Menj a **JetEngine → Lekérdezéskészítő** oldalra, és kattints az **Új hozzáadása** gombra.
2. Adj nevet a lekérdezésnek, és válaszd a **Bejegyzések lekérdezése** típust.
3. Az általános lapon válaszd ki a gyermek bejegyzéstípust (itt: Túrák), az állapot legyen közzétett.
4. Nyisd meg a bejegyzések és oldalak lapját, és a **Bejegyzések** mező melletti „érmehalom” (dinamikus címke) gombbal nyisd meg a makrók listáját.
5. Válaszd a **Kapcsolódó tételek** makrót. A **Kapcsolatból** mezőben jelöld ki a kapcsolatot, az **Objektumból** mezőben a **Gyermek objektum** értéket, a **Kezdeti objektum ID forrása** mezőben pedig az **Aktuális objektum ID-ja** értéket.
6. Kattints az **Alkalmaz** gombra, majd mentsd a lekérdezést.

### 2. Listázási elem a gyermekekhez

1. A **JetEngine → Listázások/komponensek** oldalon kattints az **Új hozzáadása** gombra.
2. A felugró ablakban válaszd a **Bejegyzések** forrást, a bejegyzéstípusnál a gyermek típust (Túrák), add meg a listázási elem nevét, és válaszd ki a nézetet (például Elementor).
3. A szerkesztőben tedd fel a dinamikus elemeket: például **Dynamic Image** (kiemelt kép), **Dynamic Link** (a cím hivatkozásként), **Dynamic Field** (ár, időtartam, típus).
4. Tedd közzé a sablont.

### 3. A szülő önálló sablonja

1. Hozz létre (vagy nyiss meg) egy önálló oldalsablont a szülő bejegyzéstípushoz a Theme Builderben. A feltétel: **Szerepel**, **Önálló**, a szülő bejegyzéstípus.
2. A törzsbe tedd az ország adatait (például **Dynamic Field** a címmel), majd egy **Listing Grid** elemet.
3. A Listing Grid általános lapján válaszd ki a gyermekek listázási elemét.
4. Az **Egyéni lekérdezés** lapon kapcsold be az **Egyéni lekérdezés használata** kapcsolót, és válaszd ki az előbb létrehozott lekérdezést.
5. Tedd közzé az oldalsablont.

Ha a sablonba szűrőket is teszel (például **Select**, **Aktív címkék**, **Szűrők eltávolítása**, **Tartomány** szűrő), a látogatók szűkíthetik a listát.

Az eredmény: ha megnyitod a frontenden az egyik ország oldalát (például Spanyolországot), csak az ahhoz kapcsolt túrák látszanak.

## Régi (legacy) kapcsolatok megjelenítése makróval

Régi kapcsolatnál a Listing Grid **Bejegyzés lekérdezés** részében vegyél fel új elemet **Posts & Authors Parameters** típussal, és az **Include posts by IDs** mezőbe írd az egyik makrót:

```
%related_children_from|bejegyzestipus-slug%
%related_parents_from|bejegyzestipus-slug%
```

A `bejegyzestipus-slug` helyére a bejegyzéstípus slugja kerül. A gyermekek makrót a szülő oldalán, a szülők makrót a gyermek oldalán használd. Régi kapcsolatnál a gyermekeket a szülő bejegyzés jobb oldali „Related Posts” részében a címek begépelésével adod meg, majd a **Frissítés** gombbal mented.

## Kapcsolódó fejezetek

- [Kapcsolódó bejegyzések megjelenítése a Dynamic Field widgettel](https://hub.hellowp.io/hu/plugins/jet-engine/kapcsolatok-dinamikus-mezo/)
- [Egyedi sorrend a kapcsolódó elemeknek](https://hub.hellowp.io/hu/plugins/jet-engine/kapcsolatok-egyedi-sorrend/)
- [Egyedi vezérlők és oszlopok a kapcsolódó elemekhez](https://hub.hellowp.io/hu/plugins/jet-engine/kapcsolatok-egyedi-vezerlok-oszlopok/)
