ساخت زمینه دلخواه در وردپرس با افزونه Advanced Custom Fields
- افزونه وردپرسمقالات آموزشی
- بروزرسانی شده در

اگه میخواید برای نوشتهها، برگهها یا بخشهای دیگه سایتتون اطلاعات اضافهای مثل نام نویسنده، مدت مطالعه، لینک دانلود یا مشخصات محصول ثبت کنید، زمینه دلخواه به کارتون میاد. زمینه دلخواه در وردپرس یعنی یک جای جدا برای ذخیره اطلاعاتی که ویرایشگر معمولی نوشته اون رو در اختیارتون نمیذاره.
توی این آموزش با افزونه Advanced Custom Fields یا ACF یک گروه فیلد میسازیم، مشخص میکنیم کجا نمایش داده بشه و بعد مقدار فیلد رو داخل قالب نشون میدیم. رابط ACF از نسخه ۶ تغییر کرده، پس اگه یک آموزش قدیمی یا تصویر متفاوت دیدید، بهتره مراحل زیر رو با صفحه فعلی افزونه مقایسه کنید.
آنچه در این مقاله میخوانید
زمینه دلخواه در وردپرس چه کاری انجام میده؟

فرض کنید برای هر نوشته میخواید یک کادر «زمان مطالعه» داشته باشید. بدون زمینه دلخواه، باید این اطلاعات رو داخل متن بنویسید و ظاهرش رو دستی تنظیم کنید. ACF یک فیلد جدا به صفحه ویرایش اضافه میکنه تا مقدار زمان مطالعه رو وارد کنید. بعد قالب سایتتون میتونه این مقدار رو در جای مشخصی نشون بده.
یادتون نره که ACF اطلاعات رو ذخیره میکنه، ولی صرف ساختن یک فیلد باعث نمیشه مقدار اون خودکار در ظاهر سایت دیده بشه. برای نمایش مقدار معمولاً باید قالب، صفحهساز یا بلوکی که از ACF پشتیبانی میکنه رو تنظیم کنید. کمی جلوتر روش نمایش با کد رو هم میبینید.
نصب افزونه Advanced Custom Fields
- از پیشخوان وردپرس وارد «افزونهها ← افزودن افزونه تازه» بشید.
- عبارت «Advanced Custom Fields» رو جستوجو کنید.
- افزونه رو نصب و بعد فعال کنید.
قبل از نصب، بخش نیازمندیها و آخرین بهروزرسانی رو در صفحه رسمی افزونه بررسی کنید. این موارد ممکنه با انتشار نسخههای جدید وردپرس، PHP یا ACF تغییر کنن.

ساخت زمینه دلخواه در وردپرس با ACF
بعد از فعالسازی، از منوی پیشخوان وارد «ACF ← Field Groups» بشید و روی «Add New» کلیک کنید. Field Group یعنی گروهی از چند فیلد مرتبط. برای نمونه، میتونید گروهی با عنوان «اطلاعات تکمیلی نوشته» بسازید و فیلد زمان مطالعه رو داخل اون قرار بدید.

برای اضافه کردن اولین فیلد، روی «Add Field» کلیک کنید. تنظیمات فیلد در رابط جدید ACF داخل چند تب قرار گرفتن و ممکنه جای بعضی گزینهها با توجه به نسخه افزونه کمی فرق داشته باشه.

تنظیم گزینههای اصلی فیلد
- Field Label: عنوانی هست که موقع ویرایش نوشته میبینید؛ برای نمونه «زمان مطالعه».
- Field Name: نام فنی فیلد برای استفاده در قالب هست؛ برای نمونه
reading_time. بهتره این نام رو با حروف انگلیسی، بدون فاصله و با خط زیر بنویسید. - Field Type: نوع اطلاعات رو مشخص میکنه. برای زمان مطالعه میتونید «Number» و برای یک متن کوتاه «Text» رو انتخاب کنید.
- Instructions: یک توضیح کوتاه برای کسی هست که فیلد رو پر میکنه؛ برای نمونه «زمان رو به دقیقه وارد کنید».
- Required: اگه این گزینه فعال باشه، کاربر بدون پر کردن فیلد نمیتونه نوشته رو بهشکل عادی ذخیره یا بهروزرسانی کنه.

مشخص کردن محل نمایش با Location Rules

Location Rules یعنی قانون نمایش گروه فیلد. این بخش تعیین میکنه فیلدها در کدوم صفحههای مدیریت دیده بشن. اگه میخواید گروه فقط موقع ویرایش نوشتهها نمایش داده بشه، قانون زیر رو انتخاب کنید:
- Post Type برابر با Post
برای برگهها میتونید «Page» رو انتخاب کنید. همین بخش اجازه میده گروه فیلد رو فقط برای یک نوع نوشته، دسته، قالب برگه یا شرایط دیگه نمایش بدید. پس ساخت گروه بهتنهایی کافی نیست و باید قانون محل نمایش اون رو هم درست تنظیم کنید.
در پایان روی «Save Changes» کلیک کنید. در رابط جدید ACF این دکمه بالای صفحه قرار داره و جای دکمه قدیمی «انتشار» رو گرفته.
وارد کردن اطلاعات زمینه دلخواه
حالا وارد «نوشتهها ← افزودن نوشته تازه» بشید یا یکی از نوشتههای قبلی رو ویرایش کنید. گروه فیلدی که ساختید باید در صفحه ویرایش دیده بشه. مقدار موردنظرتون رو وارد کنید و نوشته رو ذخیره یا بهروزرسانی کنید.

اگه گروه فیلد رو نمیبینید، اول Location Rules رو بررسی کنید. برای مثال، گروهی که قانون اون روی «Post Type = Post» تنظیم شده، داخل صفحه ویرایش برگهها نمایش داده نمیشه.
نمایش مقدار زمینه دلخواه در قالب
برای نمایش مقدار فیلد در قالب میتونید از تابع get_field() استفاده کنید. تابع یعنی یک دستور آماده در PHP که کار مشخصی انجام میده. کد زیر مقدار فیلد reading_time رو میگیره و بعد از امنسازی نشون میده:
<?php$reading_time = get_field( 'reading_time' );if ( $reading_time ) { echo '<span class="reading-time">زمان مطالعه: ' . esc_html( $reading_time ) . ' دقیقه</span>';}?>این کد باید داخل فایل مناسب قالب و در حلقه نوشته قرار بگیره. اگه هنوز با ساختار قالب آشنا نیستید، اول راهنمای قالب وردپرس چیست رو بخونید. قبل از تغییر فایلهای قالب از سایتتون نسخه پشتیبان بگیرید و بهتره تغییرات رو داخل چایلد تم انجام بدید تا با بهروزرسانی قالب از بین نرن. اگه با PHP آشنا نیستید، کد رو مستقیم روی سایت اصلی امتحان نکنید.
تابع the_field() مقدار رو مستقیم چاپ میکنه، ولی get_field() مقدار رو تحویل کدتون میده تا قبل از نمایش بررسی و متناسب با نوع داده امنسازی کنید. برای متن ساده، esc_html() انتخاب مناسبیه. لینک، تصویر و HTML به روش امنسازی متفاوتی نیاز دارن.
تفاوت نسخه رایگان و ACF PRO
نسخه رایگان ACF برای فیلدهای رایجی مثل متن، عدد، تصویر، فایل، انتخاب و تاریخ امکانات کاربردیای داره. ولی همه انواع فیلدهایی که در مستندات ACF میبینید داخل نسخه رایگان نیستن.
امکاناتی مثل Repeater، Gallery، Flexible Content و Clone به ACF PRO مربوط میشن. Repeater یعنی فیلدی که اجازه میده یک مجموعه اطلاعات رو چند بار تکرار کنید؛ برای نمونه چند عضو تیم با نام و تصویر جدا. قبل از طراحی ساختار سایت، بهتره فهرست امکانات نسخه رایگان و حرفهای رو در پرسشهای متداول رسمی ACF بررسی کنید.
جمعبندی
برای ساخت زمینه دلخواه در وردپرس، اول یک Field Group میسازید، فیلدهای موردنیاز رو به اون اضافه میکنید و با Location Rules محل نمایش گروه رو مشخص میکنید. بعد اطلاعات رو داخل صفحه ویرایش نوشته وارد میکنید.
مرحله آخر نمایش اطلاعات در ظاهر سایته. ACF داده رو ذخیره میکنه، ولی قالب باید اون رو دریافت و نمایش بده. اگه این بخش رو با کد انجام میدید، خروجی هر فیلد رو متناسب با نوع داده امنسازی کنید و تغییرات قالب رو اول در یک محیط آزمایشی بررسی کنید.
سؤالات متداول
چرا زمینه دلخواه بعد از ساخت در سایت دیده نمیشه؟
چون ACF اطلاعات رو ذخیره میکنه، ولی نمایش اون در ظاهر سایت به قالب، صفحهساز یا کد جدا نیاز داره. میتونید مقدار فیلد رو با تابع get_field() بگیرید و بعد از امنسازی در قالب نشون بدید.
چرا گروه فیلد داخل ویرایشگر نوشته نمایش داده نمیشه؟
معمولاً Location Rules درست تنظیم نشده. برای نمایش گروه در نوشتهها، قانون Post Type برابر با Post رو انتخاب کنید و بعد روی Save Changes بزنید.
برای ساخت زمینه دلخواه به ACF PRO نیاز داریم؟
نه، برای خیلی از فیلدهای معمولی میتونید از نسخه رایگان استفاده کنید. فیلدهایی مثل Repeater، Gallery، Flexible Content و Clone به نسخه ACF PRO مربوط میشن.

سلام ببخشید من میخوام در پنل مدیر ، داده ای اضافه بشه ، مثل لیستی از افراد ، حالا اون لیستی از افراد میخوام در پنل دیگه نشون داده بشه
ولی مدیر هر دفعه که اونارو اضافه و حذف کرد ، در اون پنل هم این تغییرات اعمال بشه ، ولی در اون پنل دیگه فرد نتونه این لیست رو دست کاری کنه فقط ببینه یعنی در پنل مدیر اون لیست دستکاری میتونه بشه ولی در پنل دیگه نشه این لیست رو دستکاری کرد و زمانی که مدیر این لیست رو اضافه یا حذف کرد ، در پنل دیگه هم این تغییرات اعمال شه
حالا چطور این کار رو در وردپرس انجام بدم؟؟
سلام چطور .
می تونیم هم زمان از وردپرس custom fields
و advanced custom fields استفاده کرد؟
سلام چطور می تونیم هم زمان از وردپرس custom fields
و advanced custom fields استفاده کرد؟
عالی✅
زمینه دلخواه از قسمت پیشخوان حذف شده و الان برای اضافه کردن آنها باید دستی اضافه کنم متاسفانه سیو نمی مونند و هربار باید دستی اضفه کنم
رته حلی برای این مشکل هست
با سلام
اگر منظورتان این هست که هر بار باید از تنظیمات صفحه تیک زمینههای دلخواه را فعال کنید مشکل از کوکی های مرورگر شماست. از مرورگر دیگری استفاده کنید
سلام و خسته نباشید
چطور میتونم تاریخ این زمینه های دلخواه رو که سفارشی طراحی کردم از میلادی به شمسی تبدیل کنم؟
از پارسی دیت – افزونه جلالی و…. استفاده کردم و به هیچ نتیجه ای نرسیدم تو اینترنت نیست که نیست!!
میتونید کمکی کنید در این مورد
سلام افزونه وردپرس فارسی نصب کنید. البته فکر نمیکنم جواب بده و راهی نداره متاسفانه
سلام من دنبال یک افزونه خاص هستم نمیدونم این افزونه می تونه کمک کنه یا خیر.
بطور مثال یک همایش می خواد برگزار بشه ومبلغی بابت این همایش باید دریافت شه و اگر به عنوان محصول معرفی شه نیاز به فیلدهای خاص خودش رو داره مثلا یکسری اطلاعات از کاربر بگیره وبعد به صفحه پرداخت ارجاع بشه آیا این افزونه این کاربرد رو داره؟ اگر نداره با چه افزونه ای میشه انجام داد؟
آیا میشه اصلا محصولی تعریف نشه بجاش فرم ساخت و بعد به صفحه پرداخت ارجاع داد؟
سلام خیر برای اینکار باید ووکامرس نصب کنید همراه با افزونه mihanwp easycheckout
سلام خسته نباشید دموی قالب رو که درون ریزی کردم افزونه (زمینه های دلخواه پیشرفته نسخه حرفه ای) بروزرسانی نمیشه برای بروزرسانی باید چیکار کنم
ممنون
سلام آپدیت افزونهها همراه با اپدیت قالب ارائه میشود.
سلام وقتی من به آخرین ورژن اپدیت کردم در قسمت نوشته ها دیگه زمینه دلخواه رو نمیاره در قسمت راهنما صفحه هم نگاه کردم ولی نبود فقط زمینه دلخواه خود پوسته قرار داره ولی قبلا” دو تا بود الان یکی هستش
منظورم باکس زیر هستش
http://s9.picofile.com/file/8339681684/custom_field_box.png
سلام توی نسخه جدید این باکس حذف شده. باید باکس رو با افزونه بسازید
سلام و خسته نباشید
میخواستم بدونم افزونه فوق فارسی شده است؟
و نمیدونم چطور دوستان بدون این افزونه با وردپرس کار می کنند؟ 🙂
سلام
افزونه های رایگان احتمالش کم است فارسی شده باشند تست کنید.