پرش به محتویات

ایجاد و به‌روزرسانی پست در فرانت‌اند

Bricks 2.1 اکشن فرم «Create post» و «Update post» را معرفی می‌کند که به کاربران اجازه می‌دهد محتوای هر post type را در فرانت‌اند بسازند و به‌روزرسانی کنند.

در این راهنما، listing‌های ملک برای custom post type سفارشی property را می‌سازیم و به‌روزرسانی می‌کنیم.

مهم

فرم‌های دارای اکشن «Create post» یا «Update post» فقط در صورتی render می‌شوند که کاربر فعلی capability‌های لازم برای ایجاد/به‌روزرسانی یک پست جدید برای post type انتخاب‌شده یا ویرایش پست موجود انتخاب‌شده را داشته باشد.

نحوه ایجاد/به‌روزرسانی پست از طریق ارسال فرم

از آنجایی که فرآیند ساخت فرم برای ایجاد یا به‌روزرسانی یک پست تقریباً یکسان است، هر دو اکشن را در دستورالعمل‌های گام‌به‌گام زیر به‌صورت یکجا خلاصه می‌کنیم.

مرحله ۱ — افزودن فیلدهای فرم برای داده‌های پست

فیلدهای فرم را برای تمام داده‌های پستی که می‌خواهید هنگام ایجاد یا به‌روزرسانی یک پست از طریق المان Form ذخیره کنید بسازید:

داده پست نوع فیلد
Post title Text
Post content Rich text
Post excerpt Textarea
Featured image Image
Post meta مناسب‌ترین نوع فیلد
Taxonomy Checkbox، radio، select

Post meta

مطمئن شوید مناسب‌ترین نوع فیلد را برای هر داده post meta که می‌خواهید تغییر دهید انتخاب کنید.

Bricks به‌طور خودکار گزینه‌های فیلد checkbox، radio یا select را از ACF یا Meta Box تشخیص می‌دهد، وقتی meta key را به‌درستی map می‌کنید، بنابراین نیازی ندارید آن‌ها را در خود فیلد فرم مشخص کنید. برای جزئیات بیشتر در این باره، ویدیوی Academy در این صفحه را تماشا کنید.

Taxonomy

فیلدهای فرم checkbox، radio یا select برای تغییر taxonomy های پست مثل دسته‌بندی پست یا برچسب‌ها مناسب‌ترند. می‌توانید options را خالی بگذارید. Bricks به‌طور خودکار options را با terms آن taxonomy، وقتی به‌درستی map شود، پر می‌کند.

مرحله ۲ — انتخاب اکشن فرم «Create post» یا «Update post»

بسته به اینکه می‌خواهید یک پست بسازید یا به‌روزرسانی کنید، اکشن مورد نظر را هنگام ویرایش المان Form انتخاب کنید.

اکشن Create/Update post

مرحله ۳ — پیکربندی «Create post» یا «Update post»

هنگام ساخت یک پست جدید، post type ای که می‌خواهید برای آن پست جدید بسازید را زیر control group «Create post» انتخاب کنید:

Create post برای Property

Create new post for post type "Property" on form submission

هنگام به‌روزرسانی یک پست موجود، پست خاصی که می‌خواهید به‌روزرسانی کنید را زیر control group «Update post» انتخاب کنید:

Update post control group

فیلد «Post to update» را خالی بگذارید تا پست فعلی به‌روزرسانی شود. این همان کاری است که در ویدیوی Academy انجام دادیم، چون فرم update post در صفحه single post قرار داشت.

مرحله ۴ — Field mapping

آخرین و مهم‌ترین مرحله این است که فیلدهای فرم خود را با داده‌های پستی که باید هنگام ارسال فرم تغییر کنند map/متصل کنید. کنترل‌های mapping نیز درون control group های «Create post» و «Update post» قرار دارند.

Mapping داده‌های ساده پست

برای داده‌های ساده پست مثل Post title، Post content، Post excerpt و Featured image، فقط باید فیلد فرم متناظر را از dropdown انتخاب کنید:

Mapping داده ساده پست

Mapping post meta

هنگام به‌روزرسانی post meta از طریق یک فیلد فرم، باید «Meta key» صحیح را ارائه دهید، فیلد فرم متناظر را زیر «Meta value» انتخاب کنید و «Sanitization method» صحیح را انتخاب کنید.

Mapping post meta

گزینه‌های checkbox، radio، select در ACF و Meta Box که به‌طور خودکار populate می‌شوند

Bricks به‌طور خودکار تشخیص می‌دهد که آیا یک meta key پست به ACF یا Meta Box تعلق دارد، و options فیلد را به‌طور خودکار برای شما پر می‌کند، بنابراین نیازی ندارید هنگام ساخت فیلد فرم در المان Form، «Options» مشخص کنید.

Taxonomy ها

Map کردن یک فیلد فرم به یک taxonomy ساده است. زیر «Taxonomies»، taxonomy ای که می‌خواهید به‌روزرسانی کنید را انتخاب کنید، به‌علاوه فیلد فرم متناظر که استفاده از نوع checkbox، radio یا select را برای آن پیشنهاد می‌کنیم.

دوباره، نیازی نیست taxonomy terms را به‌صورت دستی وارد کنید، مگر اینکه بخواهید انتخاب کاربر را محدود کنید. Bricks به‌طور خودکار فیلد فرم را با taxonomy terms برای شما پر می‌کند.

فیلترها (Filters)

Bricks از برخی نوع‌های فیلد با ACF و Meta Box به‌صورت out-of-the-box پشتیبانی می‌کند، اما پشتیبانی از تمام نوع‌های فیلد ممکن نیست. اما می‌توانید تمام ارسال‌های فرم و نحوه ذخیره post meta را با استفاده از دو فیلتر زیر به‌صورت برنامه‌نویسی مدیریت کنید: