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

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

اگه می‌خواید برای نوشته‌ها، برگه‌ها یا بخش‌های دیگه سایتتون اطلاعات اضافه‌ای مثل نام نویسنده، مدت مطالعه، لینک دانلود یا مشخصات محصول ثبت کنید، زمینه دلخواه به کارتون میاد. زمینه دلخواه در وردپرس یعنی یک جای جدا برای ذخیره اطلاعاتی که ویرایشگر معمولی نوشته اون رو در اختیارتون نمی‌ذاره.

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

زمینه دلخواه در وردپرس چه کاری انجام می‌ده؟

آشنایی با افزونه Advanced Custom Fields
آشنایی با افزونه Advanced Custom Fields

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

یادتون نره که ACF اطلاعات رو ذخیره می‌کنه، ولی صرف ساختن یک فیلد باعث نمی‌شه مقدار اون خودکار در ظاهر سایت دیده بشه. برای نمایش مقدار معمولاً باید قالب، صفحه‌ساز یا بلوکی که از ACF پشتیبانی می‌کنه رو تنظیم کنید. کمی جلوتر روش نمایش با کد رو هم می‌بینید.

نصب افزونه Advanced Custom Fields

  1. از پیشخوان وردپرس وارد «افزونه‌ها ← افزودن افزونه تازه» بشید.
  2. عبارت «Advanced Custom Fields» رو جست‌وجو کنید.
  3. افزونه رو نصب و بعد فعال کنید.

قبل از نصب، بخش نیازمندی‌ها و آخرین به‌روزرسانی رو در صفحه رسمی افزونه بررسی کنید. این موارد ممکنه با انتشار نسخه‌های جدید وردپرس، PHP یا ACF تغییر کنن.

نصب افزونه Advanced Custom Fields
نصب افزونه Advanced Custom Fields

ساخت زمینه دلخواه در وردپرس با ACF

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

ساخت گروه فیلد در وردپرس با ACF
ساخت گروه فیلد در وردپرس با ACF

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

افزودن فیلد در وردپرس با افزونه Advanced Custom Fields
افزودن فیلد در وردپرس با افزونه Advanced Custom Fields

تنظیم گزینه‌های اصلی فیلد

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

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

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

Location Rules یعنی قانون نمایش گروه فیلد. این بخش تعیین می‌کنه فیلدها در کدوم صفحه‌های مدیریت دیده بشن. اگه می‌خواید گروه فقط موقع ویرایش نوشته‌ها نمایش داده بشه، قانون زیر رو انتخاب کنید:

  • Post Type برابر با Post

برای برگه‌ها می‌تونید «Page» رو انتخاب کنید. همین بخش اجازه می‌ده گروه فیلد رو فقط برای یک نوع نوشته، دسته، قالب برگه یا شرایط دیگه نمایش بدید. پس ساخت گروه به‌تنهایی کافی نیست و باید قانون محل نمایش اون رو هم درست تنظیم کنید.

در پایان روی «Save Changes» کلیک کنید. در رابط جدید ACF این دکمه بالای صفحه قرار داره و جای دکمه قدیمی «انتشار» رو گرفته.

وارد کردن اطلاعات زمینه دلخواه

حالا وارد «نوشته‌ها ← افزودن نوشته تازه» بشید یا یکی از نوشته‌های قبلی رو ویرایش کنید. گروه فیلدی که ساختید باید در صفحه ویرایش دیده بشه. مقدار موردنظرتون رو وارد کنید و نوشته رو ذخیره یا به‌روزرسانی کنید.

نمایش فیلد ساخته شده با ACF در صفحه ویرایشگر نوشته
نمایش فیلد ساخته شده با ACF در صفحه ویرایشگر نوشته

اگه گروه فیلد رو نمی‌بینید، اول Location Rules رو بررسی کنید. برای مثال، گروهی که قانون اون روی «Post Type = Post» تنظیم شده، داخل صفحه ویرایش برگه‌ها نمایش داده نمی‌شه.

نمایش مقدار زمینه دلخواه در قالب

برای نمایش مقدار فیلد در قالب می‌تونید از تابع get_field() استفاده کنید. تابع یعنی یک دستور آماده در PHP که کار مشخصی انجام می‌ده. کد زیر مقدار فیلد reading_time رو می‌گیره و بعد از امن‌سازی نشون می‌ده:

PHP
<?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 مربوط می‌شن.

نظر شما در این مورد چیه؟

  1. U378203۳ اردیبهشت ۱۴۰۴

    سلام ببخشید من میخوام در پنل مدیر ، داده ای اضافه بشه ، مثل لیستی از افراد ، حالا اون لیستی از افراد میخوام در پنل دیگه نشون داده بشه
    ولی مدیر هر دفعه که اونارو اضافه و حذف کرد ، در اون پنل هم این تغییرات اعمال بشه ، ولی در اون پنل دیگه فرد نتونه این لیست رو دست کاری کنه فقط ببینه یعنی در پنل مدیر اون لیست دستکاری میتونه بشه ولی در پنل دیگه نشه این لیست رو دستکاری کرد و زمانی که مدیر این لیست رو اضافه یا حذف کرد ، در پنل دیگه هم این تغییرات اعمال شه
    حالا چطور این کار رو در وردپرس انجام بدم؟؟

  2. U343012۵ اردیبهشت ۱۴۰۳

    سلام چطور .
    می تونیم هم زمان از وردپرس custom fields
    و advanced custom fields استفاده کرد؟

  3. U343012۵ اردیبهشت ۱۴۰۳

    سلام چطور می تونیم هم زمان از وردپرس custom fields
    و advanced custom fields استفاده کرد؟

  4. U312336۱۹ بهمن ۱۴۰۲
  5. U33740۵ دی ۱۳۹۹

    زمینه دلخواه از قسمت پیشخوان حذف شده و الان برای اضافه کردن آنها باید دستی اضافه کنم متاسفانه سیو نمی مونند و هربار باید دستی اضفه کنم

    رته حلی برای این مشکل هست

    • تیم پشتیبانیتیم پشتیبانی۶ دی ۱۳۹۹

      با سلام
      اگر منظورتان این هست که هر بار باید از تنظیمات صفحه تیک زمینه‌های دلخواه را فعال کنید مشکل از کوکی های مرورگر شماست. از مرورگر دیگری استفاده کنید

  6. U20340۷ مرداد ۱۳۹۸

    سلام و خسته نباشید
    چطور میتونم تاریخ این زمینه های دلخواه رو که سفارشی طراحی کردم از میلادی به شمسی تبدیل کنم؟
    از پارسی دیت – افزونه جلالی و…. استفاده کردم و به هیچ نتیجه ای نرسیدم تو اینترنت نیست که نیست!!
    میتونید کمکی کنید در این مورد

    • تیم پشتیبانیتیم پشتیبانی۸ مرداد ۱۳۹۸

      سلام افزونه وردپرس فارسی نصب کنید. البته فکر نمی‌کنم جواب بده و راهی نداره متاسفانه

  7. U16655۵ اردیبهشت ۱۳۹۸

    سلام من دنبال یک افزونه خاص هستم نمیدونم این افزونه می تونه کمک کنه یا خیر.
    بطور مثال یک همایش می خواد برگزار بشه ومبلغی بابت این همایش باید دریافت شه و اگر به عنوان محصول معرفی شه نیاز به فیلدهای خاص خودش رو داره مثلا یکسری اطلاعات از کاربر بگیره وبعد به صفحه پرداخت ارجاع بشه آیا این افزونه این کاربرد رو داره؟ اگر نداره با چه افزونه ای میشه انجام داد؟
    آیا میشه اصلا محصولی تعریف نشه بجاش فرم ساخت و بعد به صفحه پرداخت ارجاع داد؟

    • رضا راد۶ اردیبهشت ۱۳۹۸

      سلام خیر برای اینکار باید ووکامرس نصب کنید همراه با افزونه mihanwp easycheckout

  8. U13651۱۴ فروردین ۱۳۹۸

    سلام خسته نباشید دموی قالب رو که درون ریزی کردم افزونه (زمینه های دلخواه پیشرفته نسخه حرفه ای) بروزرسانی نمیشه برای بروزرسانی باید چیکار کنم
    ممنون

    • رضا راد۱۴ فروردین ۱۳۹۸

      سلام آپدیت افزونه‌ها همراه با اپدیت قالب ارائه میشود.

  9. کاربر مهمان۲۰ مهر ۱۳۹۷

    سلام وقتی من به آخرین ورژن اپدیت کردم در قسمت نوشته ها دیگه زمینه دلخواه رو نمیاره در قسمت راهنما صفحه هم نگاه کردم ولی نبود فقط زمینه دلخواه خود پوسته قرار داره ولی قبلا” دو تا بود الان یکی هستش
    منظورم باکس زیر هستش
    http://s9.picofile.com/file/8339681684/custom_field_box.png

    • رضا راد۲۰ مهر ۱۳۹۷

      سلام توی نسخه جدید این باکس حذف شده. باید باکس رو با افزونه بسازید

  10. U14437۱۱ شهریور ۱۳۹۷

    سلام و خسته نباشید
    میخواستم بدونم افزونه فوق فارسی شده است؟

    و نمیدونم چطور دوستان بدون این افزونه با وردپرس کار می کنند؟ 🙂

    • تیم پشتیبانیتیم پشتیبانی۱۱ شهریور ۱۳۹۷

      سلام
      افزونه های رایگان احتمالش کم است فارسی شده باشند تست کنید.

پشتیبانپشتیبانپشتیبانپشتیبانپشتیبان
تیم میهن وردپرس
پشتیبانپشتیبانپشتیبانپشتیبانپشتیبان
تیم میهن وردپرسآنلاین و پاسخگوی شما هستیم.آنلاین

در حال بارگذاری...

هر سوالی دارید بپرسید.پاسخگوی شما هستیم.