# Bejegyzés létrehozása és frissítése a frontenden

> Az Űrlap elem Bejegyzés létrehozása és Bejegyzés frissítése művelete: mezők, hozzárendelés, jogosultságok és gyakori felhasználási módok.

A **Bejegyzés létrehozása** és a **Bejegyzés frissítése** űrlapművelettel a frontenden lévő **Űrlap** elem új WordPress-bejegyzést hozhat létre, vagy meglévőt frissíthet, anélkül hogy a felhasználót a wp-adminra küldenéd.

Ilyen munkafolyamatokra használhatod: ingatlanhirdetések, apróhirdetések, tagok által beküldött bejegyzések, profiloldalak vagy ügyfélportálok. A példák egy `property` nevű egyéni bejegyzéstípust használnak, de a szabályok bármelyik, a webhelyen létező nyilvános bejegyzéstípusra érvényesek.

## Mielőtt belekezdesz

Az űrlap építése előtt döntsd el:

- melyik bejegyzéstípust hozza létre vagy frissíti az űrlap;
- kik küldhetik be az űrlapot;
- az új bejegyzések piszkozatként, jóváhagyásra várva, közzétéve vagy más elérhető állapotban mentődjenek;
- az űrlap mely alap bejegyzésmezőket, egyéni mezőket és taxonómiákat módosíthatja;
- a feltöltött fájlok bekerüljenek-e a Médiatárba. A kiemelt kép, a melléklet-bejegyzések és sok ACF/Meta Box médiamező melléklet-azonosítót igényel.

## Bejegyzés létrehozása vagy frissítése űrlapból

A létrehozás és a frissítés ugyanazt a mintát követi: felveszed a mezőket, kiválasztod az űrlapműveletet, majd hozzárendeled a mezőket a módosítandó WordPress-adatokhoz.

### 1. lépés: mezők felvétele a bejegyzésadatokhoz

Hozz létre az **Űrlap** elemben mezőt mindahhoz a bejegyzésadathoz, amelyet mentenél:

| Bejegyzésadat | Ajánlott mezőtípus |
| --- | --- |
| Bejegyzés címe | Szöveg |
| Bejegyzés tartalma | Formázott szöveg (rich text) |
| Bejegyzés kivonata | Szövegterület |
| Kiemelt kép | Kép |
| Bejegyzés metaadata | Az egyéni mezőhöz leginkább illő mezőtípus |
| Taxonómia-kifejezések | Jelölőnégyzet, választógomb vagy legördülő lista |

#### Bejegyzés metaadata

Minden módosítani kívánt metaadathoz a legmegfelelőbb mezőtípust válaszd. A Bricks a hozzárendelt metaadatot a metakulcstól és a webhelyen elérhető integrációktól függően ACF-en, Meta Boxon vagy az `update_post_meta()` függvényen át tárolja.

A jelölőnégyzet, a választógomb és a legördülő lista mezőknél a Bricks automatikusan betöltheti a választási lehetőségeket az ACF-ből vagy a Meta Boxból, ha:

- a mező egy megfelelő metakulcshoz van rendelve;
- az űrlapmezőnek nincsenek kézi opciói;
- az ACF vagy a Meta Box fel tudja oldani a mezőt a bejegyzéshez vagy bejegyzéstípushoz.

Ha kézi opciókat adsz az űrlapmezőhöz, a Bricks azokat használja.

#### Taxonómia

A kategóriákhoz, címkékhez vagy egyéni taxonómiákhoz használj jelölőnégyzetet, választógombot vagy legördülő listát. Az opciókat üresen hagyhatod: ha a mező hozzá van rendelve a **Taxonómiák** ismétlőben, a Bricks automatikusan feltölti a kiválasztott taxonómia kifejezéseivel.

Ha kézzel adsz meg opciókat, a beküldött értékek a kifejezések azonosítói legyenek. A Bricks a taxonómiakifejezéseket azonosító szerint menti. Ha a hozzárendelt taxonómiamező üres, a Bricks törli az adott taxonómia kifejezéseit a bejegyzésről.

### 2. lépés: az űrlapművelet kiválasztása

Szerkeszd az **Űrlap** elemet, és a **Műveletek** vezérlőcsoportban válaszd a **Bejegyzés létrehozása** vagy a **Bejegyzés frissítése** műveletet.

A műveletek sorrendje számít. Ha egy művelet hibát ad, a Bricks leállítja a többi művelet feldolgozását. Az **Átirányítás** művelet mindig a lista végére kerül, hogy a többi kiválasztott művelet előbb lefuthasson.

### 3. lépés: a művelet beállítása

Új bejegyzés létrehozásakor a **Bejegyzés létrehozása** vezérlőcsoportban válaszd ki a bejegyzéstípust, amelyhez új bejegyzést akarsz létrehozni.

Meglévő bejegyzés frissítésekor a **Bejegyzés frissítése** vezérlőcsoportban válaszd ki a frissítendő bejegyzést. Ha a **Frissítendő bejegyzés** mezőt üresen hagyod, az aktuális bejegyzés frissül. Ha az űrlap lekérdezési ciklusban van, a Bricks a beküldött ciklusobjektum azonosítóját használja, így minden ismétlődő űrlap a saját ciklusbeli elemét frissíti.

Mindkét művelethez tartozik egy **Bejegyzés állapota** beállítás. A létrehozásnál az üresen hagyott érték mellett a WordPress alapértelmezett beszúrási viselkedése érvényesül. A frissítésnél az üres érték megtartja a bejegyzés jelenlegi állapotát.

Ha a **Bejegyzés létrehozása** bejelentkezett felhasználónál fut le, ő lesz a bejegyzés szerzője. Ha kikapcsolod a jogosultság-ellenőrzést, és névtelen beküldést engedélyezel, a Bricks a webhely első szuperadminisztrátorát rendeli szerzőnek.

## 4. lépés: a mezők hozzárendelése

Az utolsó és legfontosabb lépés az űrlapmezők összekapcsolása a beküldéskor módosítandó bejegyzésadatokkal. A hozzárendelés vezérlői szintén a **Bejegyzés létrehozása** és a **Bejegyzés frissítése** vezérlőcsoportban vannak.

### Egyszerű bejegyzésadatok hozzárendelése

Az egyszerű adatoknál, vagyis a bejegyzés címénél, tartalmánál, kivonatánál és a kiemelt képnél csak ki kell választanod a megfelelő űrlapmezőt a legördülő listából.

A kiemelt képhez és a melléklet-bejegyzésekhez olyan mezőket használj, amelyek a Médiatárba mentik a feltöltést, hogy a Bricks a feltöltött melléklet azonosítójával dolgozhasson.

A Bricks a WordPress kiemelt kép logikájának hívása előtt ellenőrzi, hogy a hozzárendelt érték képmelléklet-azonosító-e. Ha a hozzárendelt mezőnek nincs értéke, a Bricks eltávolítja a kiemelt képet.

### Metaadat hozzárendelése

A bejegyzés metaadatának űrlapmezőn át történő módosításához vegyél fel egy elemet a **Bejegyzés metaadata** alatt, és add meg:

- **Metakulcs:** a frissítendő egyéni mező kulcsa. A Bricks mentés előtt megtisztítja a kulcsot.
- **Metaérték:** az az űrlapmező, amelynek beküldött értékét menteni kell.
- **Tisztítási módszer:** hogyan tisztítsa a Bricks a beküldött értéket mentés előtt.

Az elérhető tisztítási módszerek: szöveg, egész szám, lebegőpontos szám, e-mail, URL és bejegyzésbarát HTML. Azokat az értékeket, amelyeket az ACF vagy a Meta Box nem kezel, a Bricks a WordPress bejegyzés-metaadatába menti.

#### ACF és Meta Box kezelése

Ahol lehet, a Bricks az ACF-mezőket az `update_field()`, a Meta Box mezőket az `rwmb_set_meta()` függvénnyel frissíti, nem csak nyers metaadatot ír. Ez azoknál a mezőtípusoknál fontos, amelyek meghatározott értékformát várnak.

A médiamezőkhöz a fájlfeltöltő mezők a Médiatárba mentsék a fájlokat. A Bricks a létrehozás/frissítés művelet előtt feldolgozza ezeket a feltöltéseket, így a hozzárendelt mezők megkaphatják a melléklet-azonosítókat.

ACF csoportmezőknél a Bricks fel tudja oldani a beágyazott metakulcsokat, és frissíti a szülő csoport értékét, hogy a beágyazott adat szerkezete megmaradjon.

### Taxonómiák

A taxonómia hozzárendelése egyszerű: a **Taxonómiák** alatt válaszd ki a frissítendő taxonómiát és a hozzá tartozó űrlapmezőt.

A kifejezéseket nem kell kézzel felvenned, kivéve, ha korlátozni szeretnéd a választékot. A Bricks automatikusan feltölti az űrlapmezőt a kiválasztott taxonómia kifejezéseivel, ha a hozzárendelt mezőnek nincsenek kézi opciói.

## Biztonság és ellenőrzés

A Bricks a létrehozás/frissítés művelet előtt is lefuttatja a szokásos űrlapbeküldési ellenőrzéseket:

- Az AJAX-beküldésnek érvényes Bricks űrlap-nonce-t kell tartalmaznia.
- A beküldött mezőazonosítóknak meg kell egyezniük az űrlapbeállításokban létező mezőkkel. A váratlan vagy ismétlődő azonosítókat a Bricks elutasítja.
- A kötelező mező, a maximális hossz, a méztál (honeypot) és a bekapcsolt captcha ellenőrzése a műveletek előtt lefut.
- A művelet a szerveroldalon ismét ellenőrzi a jogosultságokat, hacsak ki nem kapcsoltad.

Ha a jogosultság-ellenőrzés be van kapcsolva, a jogosulatlan felhasználóknak az űrlap meg sem jelenik. Ha a **Bejegyzés létrehozása** vagy a **Bejegyzés frissítése** vezérlőcsoportban egyéni hibaüzenetet adtál meg, a Bricks azt jeleníti meg.

## Gyakori megoldások

### Beküldött bejegyzések jóváhagyásra

Használd a **Bejegyzés létrehozása** műveletet, hagyd bekapcsolva a jogosultság-ellenőrzést a megbízható, bejelentkezett felhasználóknak, és a **Bejegyzés állapota** legyen **Függőben** vagy **Piszkozat**. Csak azokat a mezőket rendeld hozzá, amelyeket a felhasználók szerkeszthetnek.

### A szerzők a saját bejegyzéseiket szerkesztik

Használd a **Bejegyzés frissítése** műveletet, hagyd üresen a **Frissítendő bejegyzés** mezőt egy egyedi bejegyzéssablonban, és tartsd bekapcsolva a jogosultság-ellenőrzést. A WordPress csak akkor engedi a frissítést, ha az aktuális felhasználó szerkesztheti az adott bejegyzést.

### Lekérdezési cikluson belüli elemek frissítése

Tedd a frissítő űrlapot a lekérdezési cikluson belülre, és hagyd üresen a **Frissítendő bejegyzés** mezőt. A Bricks elküldi a ciklusobjektum azonosítóját, és a megfelelő ciklusbeli elemet frissíti.

### Mellékletbejegyzések létrehozása feltöltésekből

Állítsd a bejegyzéstípust **Melléklet** értékre, és használj a Médiatárba mentő fájlfeltöltő mezőt. A Bricks az első megtalált feltöltött mellékletet használja, és a hozzárendelt mezőkön át frissítheti a címét, tartalmát, kivonatát, állapotát, metaadatait és kifejezéseit.

## Szűrők

A Bricks sok ACF- és Meta Box-mezőtípust alapból támogat, de minden egyedi beállítás más. A hozzárendelt metaértékeket mentés előtt ezekkel a szűrőkkel módosíthatod:

- `bricks/form/create_post/meta_value`
- `bricks/form/update_post/meta_value`

Az űrlapműveletek általános leírását lásd az [Űrlap: műveletek és egyéni fejlesztés](https://hub.hellowp.io/hu/plugins/bricks-child/elemek-urlap-muveletek/) fejezetben.
