Tovább a tartalomhoz

Bejegyzések frissítése a weboldalról űrlappal

Szerkesztőűrlap egy bejegyzés adatainak módosításához a weboldalról: Profilkészítő aloldal, listázás Edit gombbal, űrlapmezők minden meta mező típushoz, Insert/Update Post művelet és előbeállítások.

A látogató (bejelentkezett felhasználó) a weboldalról, űrlappal módosíthatja egy bejegyzés adatait. Ez az alap WordPress-bejegyzésekkel és egyéni bejegyzéstípusokkal is működik. A fejezet az „Események” bejegyzéstípus szerkesztőűrlapját építi fel, a Profilkészítő fiókoldalának aloldalán. Az űrlapot bármelyik statikus oldalra is teheted.

Követelmény: a JetFormBuilder bővítmény, vagy a JetEngine bekapcsolt Űrlapok (régi) modullal és beállított Profilkészítővel. A JetFormBuilder a jobb választás, a JetEngine űrlapkészítője régi. Mindkét módszert leírjuk.

  1. Nyisd meg a JetEngine → Profile Builder → Account Page oldalt, és hozz létre egy új aloldalt a szerkesztőűrlapnak.
  2. Adj neki címet és azonosítót (slug-ot).
  3. Kapcsold be a Hide from menu kapcsolót, hogy az aloldal ne jelenjen meg a profilmenüben. Az URL-en így is elérhető marad.

Az űrlapot később helyezed el az aloldalon. A Profilkészítőről a Profilkészítő áttekintése és a Profilkészítő beállítása fejezetben olvashatsz.

A látogató a bejegyzések listájában az „Edit Post” gombbal jut az űrlaphoz.

  1. Ha még nincs, készíts listázási sablont az egyéni bejegyzéstípushoz, amelynek bejegyzéseit szerkeszteni lehet.
  2. A sablonba tedd be a Dynamic Link widgetet. A link Source (forrás) értéke legyen Profile Page, és add meg az előbb létrehozott aloldalt.
  3. Adj neki feliratot, például „Edit Event”.
  4. Kapcsold be az Add Query Arguments kapcsolót, és a mezőbe írd be:
_post_id=%current_id%

A _post_id az URL-paraméter neve, a %current_id% makró pedig dinamikusan az aktuális bejegyzés azonosítóját adja. A link megnyomása után az URL-ben ott lesz a szerkesztendő bejegyzés azonosítója, ezt olvassa majd ki az űrlap.

  1. Mentsd a sablont.

A listát bármelyik oldalra elhelyezheted. A példában egy „My Events” aloldal tartalmazza: ehhez készíts oldalsablont (Elementor → Saját sablonok), tedd bele a Listing Grid widgetet, válaszd ki a listázási sablont, és a Query Builderrel jeleníts meg csak az aktuális felhasználó által szerzett bejegyzéseket.

A JetFormBuilder → Forms → Add New menüben hozz létre új űrlapot.

Vegyél fel egy Hidden Field blokkot. A Field Value értéke legyen URL Query Variable, a Query Variable Key mezőbe pedig írd be: _post_id. Így a mező kiolvassa a szerkesztett bejegyzés azonosítóját az URL-ből. Ha az űrlapot a bejegyzés saját oldalára teszed, a Field Value legyen Current Post ID.

A Text, Textarea és WYSIWYG meta mezők szerkesztéséhez használj ugyanilyen típusú mezőket. A példában a bejegyzés címéhez egy Text mező, az esemény leírásához (WYSIWYG típusú meta mező) egy WYSIWYG mező tartozik. A Field Label és Form Field Name kötelező, a többi beállítás opcionális.

A többválasztós meta mezők (Checkbox, Radio, Select) szerkesztéséhez használd a megfelelő űrlapmezőt.

A Checkbox meta mező beállításai között kapcsold be a Save as array kapcsolót. Ha ezt korábban nem tetted, kapcsold be, és mentsd újra az összes bejegyzést: szerkeszd a bejegyzést, vedd ki és add vissza a jelölést a meta mezőben, és kattints a Frissítés gombra.

A Checkbox mező beállításai: Fill Options From = Generate Dynamically, Generator Function = Get values list from JetEngine field options, a Field Name mezőbe pedig a Checkbox meta mező neve kerül. Így a mező a meta mező lehetőségeiből generálja a sajátját.

A taxonómia frissítéséhez egy Select mező kell: a Fill Options From értéke Terms, és válaszd ki a taxonómiát. Taxonómiához Radio, Checkbox és Select mező is használható.

A Date, Time és Datetime meta mezőkhöz a megfelelő űrlapmezőket használd. A példában két Date meta mező van (kezdés és befejezés), ezért két Date mezőt veszel fel.

A legfontosabb: a Date mezőnél kapcsold be az Is Timestamp kapcsolót, és a Date meta mezőnél a Save as timestamp kapcsolót is. Ha ez utóbbit a bejegyzések létrehozása előtt nem kapcsoltad be, kapcsold be, és mentsd újra a bejegyzéseket (válaszd ki újra a dátumot, és kattints a Frissítés gombra). Datetime mezőnél is be kell kapcsolni az Is Timestamp kapcsolót, a Time mezőnél nincs ilyen beállítás.

Beállíthatod, hogy a választható dátumok egy adott naptól induljanak. Az Starting from Date mezőbe az aktuális dátumhoz írd be (a jeleket is másold):

'%CT::CurrentDate|toDate%'

Time mezőnél az aktuális időponttól:

'%CT::CurrentDate|toTime%'

Datetime mezőnél az aktuális dátumtól és időtől:

'%CT::CurrentDate|toDateTime%'

A bejegyzés kiemelt képének frissítéséhez használj Media Field blokkot.

  • User Access: bármi, kivéve az Any user (incl. Guest) értéket, mert a vendég nem szerkeszthet bejegyzést és nem tölthet fel a médiatárba.
  • Insert attachment: ha be van kapcsolva, a feltöltött fájl a médiatárba is bekerül. Csak bejelentkezett felhasználóknál működik.
  • Field Value: a kiemelt kép azonosítóként tárolódik, ezért válaszd az Attachment ID értéket. Média meta mezőnél az űrlapmező értékének egyeznie kell a meta mező Value format beállításával. Ha például a Gallery meta mező formátuma Media URL, az űrlapmezőnél az Attachment URL kell.
  • Maximum Allowed Files to Upload: Gallery meta mező frissítéséhez egynél több fájlt engedélyezz.
  • Maximum Size in MB: egy fájl legnagyobb mérete.
  • Allowed MIME Types: a feltölthető fájlformátumok.

A Media mezővel a Media és a Gallery meta mező is frissíthető.

Az ismétlő (Repeater) meta mező frissítéséhez Repeater Field blokk kell, amelybe ugyanolyan típusú mezőket teszel, mint az ismétlő meta mező belsejében. Ha az „event-addresses” ismétlő meta mezőben egyetlen „event-address” Text mező van, a Repeater blokkba egy Text blokkot teszel. A Repeater blokk Form Field Name értéke az ismétlő meta mező neve (event-addresses), a Text blokk neve pedig a belső mező neve (event-address).

  1. A jobb oldali JetForm fülön a Post Submit Actions szakaszban kattints a New Action gombra, és válaszd az Insert/Update Post műveletet. A ceruza gombbal szerkesztheted.
  2. Válaszd ki a Post Type értékét („Events”) és a bejegyzés állapotát.
  3. A Fields Map részben rendeld az űrlapmezőket a bejegyzés tulajdonságaihoz. Először a post_id mezőt a Post ID (will update the post) tulajdonsághoz.

Ha a post_id mezőt nem rendeled ehhez, az űrlap beküldése új bejegyzést hoz létre a meglévő frissítése helyett.

  1. Rendeld a többi mezőt is a tulajdonságokhoz. A meta mezőknél a Post Meta tulajdonság alatti mezőbe írd be a meta mező nevét.
  2. Kattints az Update gombra.

A JetForm fülön, a Preset Settings szakaszban kapcsold be az előbeállításokat, hogy az űrlap mezői a bejegyzés meglévő értékeivel töltődjenek ki, és a felhasználó csak a módosítandó adatokat írja át.

  • Source: Post.
  • Get Post ID From: URL Query Variable, a Query Variable Name pedig _post_id.
  • Ha az űrlap a bejegyzés saját oldalán van, a Get Post ID From értéke Current Post.

Ezután rendeld hozzá az összes mezőt ugyanúgy, mint az Insert/Update Post műveletnél.

A General Messages Settings szakaszban szerkesztheted a beküldés után megjelenő üzeneteket. Végül tedd közzé az űrlapot.

  1. Az Elementor → Templates → Saved Templates oldalon hozz létre új sablont, amelyet később az „Edit Event” aloldalhoz rendelsz.
  2. Tedd a sablonba a JetForm widgetet, és válaszd ki az űrlapot. A Style fülön formázd a mezőket.
  3. Mentsd a sablont, majd a JetEngine → Profile Builder → Account Page oldalon rendeld hozzá az aloldalhoz.

3b. Az űrlap a JetEngine régi űrlapkészítőjében

Szekció neve “3b. Az űrlap a JetEngine régi űrlapkészítőjében”

Ha a Űrlapok (régi) modult használod, a JetEngine → Űrlapok menüben hozz létre új űrlapot. A lépések ugyanazok, a nevek kicsit eltérnek.

  • Hidden mező: a Field Value értéke URL Query Variable, a Query variable key értéke _post_id. Bejegyzés saját oldalán a Current Post ID használható.
  • Text, Textarea, WYSIWYG: ugyanolyan típusú mezők. A Name csak latin kisbetűt, számot és a „-” vagy „_” jelet tartalmazhatja, szóköz nem lehet benne, különben űrlaphibák keletkeznek.
  • Checkbox, Radio, Select: a Checkbox meta mezőn a Save as array kapcsolót be kell kapcsolni, és az űrlapban a Checkboxes mező a Generate Dynamically forrást használja a Get values list from JetEngine field options függvénnyel. A taxonómiához Terms forrású Select kell.
  • Date, Time, Datetime: ugyanaz, mint fent: Is Timestamp az űrlapmezőn, Save as timestamp a meta mezőn.
  • Media: User access nem lehet az Any user (incl. Guest), az Insert attachment bekapcsolt, és a Field value az Attachment ID (vagy a meta mező formátumának megfelelő). Meg kell adni a legnagyobb fájlszámot, méretet és a MIME-típusokat.
  • Repeater: a Repeatable Fields Group Start és Repeatable Fields Group End mezők közé teszed a belső mezőket. A kezdő mező neve az ismétlő meta mező neve, a belső mezőé a belső meta mező neve.
  • Insert/Update Post: a Beküldés utáni műveletek / értesítések beállításai szakaszban az Értesítés hozzáadása gombbal vedd fel. A Fields Map első sora a post_id mező a Post ID (will update the post) tulajdonsággal. A végén a Módosítások alkalmazása gombra kattints.
  • Üzenetek: az Üzenetek beállításai szakaszban szerkeszthetők (lásd Űrlapüzenetek).
  • Előbeállítások: kapcsold be a Pre-set form field values jelölőnégyzetet. A Source értéke Post, a Get post ID from értéke URL Query Variable, a Query variable name értéke _post_id (bejegyzés saját oldalán Current Post). Utána rendeld hozzá a mezőket.
  • Elhelyezés: Elementor-sablonban a Form widgetet használd, a Profile Builder aloldalhoz rendeld a sablont.

Nyisd meg azt az oldalt, ahol a bejegyzések listája van, és kattints az „Edit Post” gombra. Az előbeállítások miatt az űrlap mezői a bejegyzés adataival töltődnek ki. Módosítsd a mezőket, és küldd be az űrlapot: a bejegyzés frissül.

Készült:

Tiszteletben tartjuk a magánszférádat

Sütiket használunk a böngészési élmény javítására és a forgalom elemzésére. Az analitika csak akkor indul, ha engeded. Adatvédelmi irányelvek, Sütitájékoztató.

Sütibeállítások