# Makrók a kapcsolatokhoz

> Kapcsolódó szülők, gyermekek, testvérek, nagyszülők és unokák lekérdezése a Lekérdezéskészítő makróival bejegyzésekre, kifejezésekre, felhasználókra és CCT-elemekre.

A kapcsolódó elemeket a **Lekérdezéskészítő** makróival kérheted le, majd egy **Listing Grid** elemmel jelenítheted meg. Ez a fejezet az új (2.11.0 után létrehozott) kapcsolatokra vonatkozik. A régi kapcsolatokhoz külön, régi makrók tartoznak (lásd: [Nagyszülő és unoka kapcsolatok](https://hub.hellowp.io/hu/plugins/jet-engine/kapcsolatok-nagyszulo-unoka/)).

## Kapcsolódó elemek makró (szülők és gyermekek)

Ez a makró egy objektum szülő- vagy gyermekelemeit adja vissza. Például ha van **Szolgáltatók** és **Szolgáltatások** bejegyzéstípusod, egy szolgáltató oldalán csak az általa kínált szolgáltatásokat listázhatod.

### Bejegyzések lekérdezése

1. A **JetEngine → Lekérdezéskészítő** oldalon kattints az **Új hozzáadása** gombra.
2. Add meg a lekérdezés nevét, a **Lekérdezés típusa** legyen **Bejegyzések lekérdezése**.
3. Az általános lapon add meg a **Bejegyzés típusa** mezőben a lekérdezett elemek bejegyzéstípusát.
4. A **Bejegyzés és oldal** lapon kattints a **Post In** mező melletti makró ikonra, és válaszd a **Related Items** makrót.
5. Állítsd be a makrót:

| Beállítás | Mit csinál |
|---|---|
| **From Relation** | A kapcsolat, amelyből a szülő- vagy gyermekelemeket kéred. |
| **From Object** | **Child Object**: a gyermekek jelennek meg. **Parent Object**: a szülők jelennek meg. |
| **Initial Object ID From** | Honnan vegye a kiinduló objektum azonosítóját (lásd lent). |
| **Variable Name** | Csak a **Query Variable** és a **Current Object Variable** értéknél jelenik meg: a keresett változó neve. |

A **Initial Object ID From** értékei:

- **Aktuális objektum ID-ja**: az önálló oldal aktuális bejegyzése, vagy az éppen megjelenített listaelem;
- **Current User ID**: a bejelentkezett felhasználó;
- **Queried User ID**: a kiválasztott felhasználó, például a Profile Builder felhasználói oldalán;
- **Query Variable**: a globális vagy WordPress-kérés egyik változójának értéke;
- **Current Object Variable**: a JetEngine által aktuálisnak megjelölt objektum egyik változója;
- **Default WordPress Object (for current page)**: mindig az oldalhoz tartozó WordPress-objektum. Önálló oldalon ez akkor is az aktuális bejegyzés, ha a lekérdezés egy az oldalon lévő listázásban fut.

6. Kattints az **Alkalmaz**, majd a lekérdezés mentése gombra.

Ezután hozz létre a megjelenítendő elemekhez egy listázási elemet (ha még nincs), és tedd rá a szükséges dinamikus elemeket, például a **Dynamic Field** widgetet. Az önálló oldalon helyezz el egy **Listing Grid** elemet, kapcsold be az **Egyéni lekérdezés használata** kapcsolót, és válaszd ki a lekérdezést. Mentsd az oldalt.

### Kifejezések lekérdezése

Kapcsolódó kifejezésekhez a **Lekérdezés típusa** legyen **Kifejezések lekérdezése**. Az általános lapon add meg a taxonómiát (vagy többet). A **Include/Exclude** lapon az **Include** mező melletti makró ikonnal válaszd a **Related Items** makrót, és állítsd be ugyanúgy, mint a bejegyzéseknél. A listázási elem a kifejezéshez készüljön, a **Listing Grid** pedig az önálló vagy az archív oldalra kerül.

### Felhasználók lekérdezése

A **Lekérdezés típusa** legyen **Felhasználók lekérdezése**. Az **Include/Exclude** lapon az **Include** mező makró ikonjával válaszd a **Related Items** makrót, és állítsd be. A listázási elemet felhasználókhoz készítsd, a **Listing Grid** pedig az egyéni lekérdezéssel a kívánt oldalra kerül.

### Egyedi tartalomtípus (CCT) lekérdezése

1. A **Lekérdezés típusa** legyen **Egyedi tartalomtípus lekérdezése**, és a **From Content Type** mezőben válaszd ki a CCT-t.
2. A lekérdezési részben kattints az **Új hozzáadása** gombra.
3. Az ismétlő mezőben a **Field** értéke legyen **Item ID**, a **Compare** értéke **In the list**.
4. A **Value** mező melletti „érmehalom” ikonnal válaszd a **Related Items** makrót, és állítsd be.
5. A típus legyen **Numeric**, majd kattints az **Alkalmaz** gombra, és mentsd a lekérdezést.

## Kapcsolódó testvérek makró

A **Related Siblings** makró a **Related Items** makróhoz hasonló, de a testvéreket adja. Példa: az **Országok → Túrák** kapcsolatnál a **Related Items** makró egy ország oldalán az ország túráit mutatja, a **Related Siblings** egy túra oldalán a vele azonos országhoz tartozó többi túrát.

1. A **JetEngine → Lekérdezéskészítő** oldalon hozz létre új lekérdezést a testvérek típusának megfelelő lekérdezéstípussal (például **Bejegyzések lekérdezése**), és add meg a bejegyzéstípust.
2. A **Bejegyzés és oldal** lapon a **Post In** mező makró ikonjával válaszd a **Related Siblings** makrót.
3. A beállítások ugyanazok, mint fent. A példában a **From Relation** az Országok → Túrák kapcsolat, a **From Object** a **Child Object** (mert a túrák a gyermekek), az **Initial Object ID From** pedig az **Aktuális objektum ID-ja** (mert a látogató a túra oldalán van). Kattints az **Alkalmaz** gombra.
4. Mentsd a lekérdezést, majd a túra önálló oldalán tegyél fel egy **Listing Grid** elemet, és az **Egyéni lekérdezés** lapon válaszd ki a lekérdezést.

Az eredmény egy argentin túra oldalán az ugyanahhoz az országhoz tartozó többi túra.

## Kapcsolódó nagyszülők és unokák makró

Ezekhez két kapcsolat kell: egy szülő-gyermek és egy alsó szintű, amelyiknek be van állítva a **Szülőkapcsolat** (például Kontinensek → Országok, és Országok → Túrák, utóbbi szülőkapcsolata az előző). A lekérdezés a két kapcsolatot összeköti, így az unokától a nagyszülő, a nagyszülőtől az unokák érhetők el.

**Nagyszülők lekérdezése** (az unoka oldalán):

1. Hozz létre új lekérdezést a nagyszülő típusának megfelelő lekérdezéstípussal (példánkban **Bejegyzések lekérdezése**).
2. A megfelelő mező makró ikonjával válaszd a **Related Grandparents** makrót.
3. Add meg a kapcsolatot, amelyben az unoka szerepel, és az **Aktuális objektum ID-ja** értéket (a **Grandchild Object ID From** mező értékei ugyanazok, mint a **Initial Object ID From** értékei).
4. Mentsd a lekérdezést, és a túra oldalán a **Listing Grid** egyéni lekérdezéseként add meg. Az eredmény a túra nagyszülő kontinense.

**Unokák lekérdezése** (a nagyszülő oldalán):

1. Hozz létre új lekérdezést az unokák típusának megfelelő lekérdezéstípussal.
2. A makró ikonnal válaszd a **Related Grandchildren** makrót.
3. Add meg azt a kapcsolatot, amelyben az unoka szerepel (Országok → Túrák), és az **Aktuális objektum ID-ja** értéket.
4. Mentsd a lekérdezést, és a kontinens oldalán a **Listing Grid** egyéni lekérdezéseként add meg. Az eredmény a kontinens országainak túrái.

A makrókat a JetEngine makrógenerátora is előállítja (lásd: [Shortcode- és makrógenerátor](https://hub.hellowp.io/hu/plugins/jet-engine/generatorok/)).
