وردپرس‌کالاوردپرس رو ساده‌تر توسعه بده
عضویت VIP

دانلود رایگان افزونه ACF Pro

ACF PRO

لوگوی افزونه ACF

ACF PRO نسخه‌ی کامل افزونه‌ی Advanced Custom Fields است که فیلدهای Repeater، Flexible Content، Gallery و Clone، صفحه‌ی تنظیمات اختصاصی و ساخت بلوک گوتنبرگ با PHP را به وردپرس اضافه می‌کند. نسخه‌ی اورجینال، بدون نیاز به کلید لایسنس.

معرفی افزونه

ACF Pro چیست؟

ACF PRO نسخه‌ی کامل افزونه‌ی Advanced Custom Fields است؛ افزونه‌ای که به شما اجازه می‌دهد به نوشته‌ها، برگه‌ها، کاربران، دسته‌ها، رسانه و دیدگاه‌ها فیلد سفارشی اضافه کنید و مقدار آن‌ها را در قالب نمایش دهید. نسخه‌ی رایگان ACF در مخزن وردپرس بیش از دو میلیون نصب فعال دارد و نسخه‌ی PRO چند فیلد و قابلیت مهم را به آن اضافه می‌کند: Repeater، Flexible Content، Gallery، Clone، صفحه‌ی تنظیمات (Options Page) و ACF Blocks برای ساخت بلوک گوتنبرگ با PHP. این افزونه را Elliot Condon ساخت و امروز WP Engine آن را توسعه می‌دهد.

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

ACF به چه دردی می‌خورد؟

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

تفاوت ACF رایگان و ACF PRO

نسخه‌ی رایگان امروز امکانات زیادی دارد: بیش از ۳۰ نوع فیلد، ثبت پست‌تایپ و طبقه‌بندی سفارشی از داخل پیشخوان، Local JSON و درون‌ریزی و برون‌بری گروه‌های فیلد. PRO روی همان کد ساخته شده و این امکانات را اضافه می‌کند:

قابلیتACF رایگانACF PRO
فیلدهای پایه (متن، عدد، تصویر، فایل، انتخاب، تاریخ، نقشه، رابطه، گروه، تب و…)دارددارد
ثبت پست‌تایپ و طبقه‌بندی سفارشیدارددارد
Local JSON و درون‌ریزی و برون‌بریدارددارد
فیلد Repeaterندارددارد
فیلد Flexible Contentندارددارد
فیلد Galleryندارددارد
فیلد Cloneندارددارد
Options Page با کد یا از پیشخوانندارددارد
ACF Blocks برای ساخت بلوک گوتنبرگندارددارد

فیلدها و امکانات اختصاصی PRO

  • Repeater: مجموعه‌ای از زیرفیلدها که نویسنده هر چند بار لازم باشد تکرارش می‌کند؛ مثل فهرست اعضای تیم، سؤالات متداول یا جدول قیمت.
  • Flexible Content: چند چیدمان مختلف تعریف می‌کنید، مثلاً «بنر»، «متن و تصویر» و «نظرات مشتریان»، و نویسنده صفحه را با کنار هم گذاشتن و جابه‌جا کردن این بخش‌ها می‌سازد.
  • Gallery: انتخاب و مرتب کردن چند تصویر در یک فیلد، مناسب گالری محصول یا نمونه‌کار.
  • Clone: استفاده‌ی دوباره از فیلدها یا گروه فیلدهای موجود، بدون ساختن دوباره‌ی آن‌ها.
  • Options Page: صفحه‌ی تنظیمات اختصاصی در پیشخوان برای داده‌هایی که به کل سایت تعلق دارند، مثل شماره تماس، شبکه‌های اجتماعی یا متن فوتر. از نسخه‌ی ۶٫۲ این صفحه‌ها را بدون کد و از خود پیشخوان هم می‌سازید.
  • ACF Blocks: ساخت بلوک اختصاصی ویرایشگر بلوک با PHP و فایل block.json، بدون نیاز به React. در نسخه‌ی ۶٫۸٫۹ بلوک‌هایی که نسخه‌ی مشخصی ندارند روی وردپرس ۷٫۱ و بالاتر به‌طور پیش‌فرض از نسخه‌ی ۳ بلوک‌های ACF استفاده می‌کنند.

نمونه‌کدهای کاربردی ACF

ساده‌ترین کار، خواندن مقدار یک فیلد در قالب با get_field است. خروجی را همیشه با توابع وردپرس ایمن کنید:

<?php
$subtitle = get_field( 'subtitle' );
if ( $subtitle ) {
    echo '<p class="subtitle">' . esc_html( $subtitle ) . '</p>';
}

برای فیلد Repeater از حلقه‌ی have_rows استفاده می‌شود. the_row ردیف بعدی را آماده می‌کند و get_sub_field مقدار زیرفیلد را برمی‌گرداند:

<?php if ( have_rows( 'team' ) ) : ?>
  <ul class="team">
  <?php while ( have_rows( 'team' ) ) : the_row(); ?>
    <li><?php echo esc_html( get_sub_field( 'name' ) ); ?></li>
  <?php endwhile; ?>
  </ul>
<?php endif; ?>

در Flexible Content همان حلقه کار می‌کند و get_row_layout نام چیدمان هر ردیف را می‌دهد. یک روش مرتب این است که برای هر چیدمان یک فایل قالب جدا بسازید:

<?php
if ( have_rows( 'page_sections' ) ) {
    while ( have_rows( 'page_sections' ) ) {
        the_row();
        get_template_part( 'sections/' . get_row_layout() );
    }
}

صفحه‌ی تنظیمات را با acf_add_options_page ثبت می‌کنید و مقدار فیلدهایش را با پارامتر دوم 'option' می‌خوانید:

<?php
add_action( 'acf/init', function () {
    if ( function_exists( 'acf_add_options_page' ) ) {
        acf_add_options_page( array(
            'page_title' => 'تنظیمات قالب',
            'menu_slug'  => 'theme-settings',
        ) );
    }
} );

// در فایل‌های قالب
$phone = get_field( 'phone', 'option' );

پیش‌نیازها

ACF PRO نسخه‌ی ۶٫۸٫۱۰ به وردپرس ۶٫۲ یا بالاتر و PHP ۷٫۴ یا جدیدتر نیاز دارد و روی وردپرس ۷٫۱ آزمایش شده است. نسخه‌های ۶٫۸٫۷ و ۶٫۸٫۱۰ چند اصلاح امنیتی مهم برای فیلدهای تصویر و فایل، پاسخ‌های REST API و فرم‌های فرانت‌اند دارند؛ اگر نسخه‌ی قدیمی‌تری نصب دارید، به‌روزرسانی را عقب نیندازید.

راهنمای نصب ACF PRO

  1. از فایل‌ها و پایگاه داده نسخه‌ی پشتیبان بگیرید.
  2. فایل دانلودشده را از حالت فشرده خارج کنید؛ فایل زیپ افزونه داخل پوشه است.
  3. از «افزونه‌ها › افزودن › بارگذاری افزونه» فایل زیپ را نصب و فعال کنید.
  4. اگر نسخه‌ی رایگان ACF نصب است، آن را غیرفعال و حذف کنید. PRO یک افزونه‌ی مستقل است و همه‌ی امکانات نسخه‌ی رایگان را دارد. گروه‌های فیلد و مقدارهای ذخیره‌شده در پایگاه داده می‌مانند.
  5. منوی ACF در پیشخوان ظاهر می‌شود و کلید لایسنس خواسته نمی‌شود. اگر پیغام به‌روزرسانی پایگاه داده دیدید، آن را اجرا کنید.
  6. برای به‌روزرسانی، نسخه‌ی جدید را از همین صفحه دانلود و جایگزین کنید.

نکاتی برای استفاده‌ی بهتر

  • در پوشه‌ی قالب یک پوشه با نام acf-json بسازید. ACF گروه‌های فیلد را به‌صورت فایل JSON در آن ذخیره می‌کند؛ این فایل‌ها را در Git نگه می‌دارید و بین سایت توسعه و سایت اصلی جابه‌جا می‌کنید.
  • نام فیلدها را انگلیسی، کوتاه و با خط زیر انتخاب کنید، مثل hero_title. برچسب فیلد را فارسی بنویسید تا نویسنده راحت باشد.
  • برای جلوگیری از خطای فاتال در صورت غیرفعال شدن افزونه، توابع ACF را در قالب با function_exists بررسی کنید.
  • برای داده‌هایی که باید روی آن‌ها فیلتر یا جست‌وجو انجام دهید، فیلد ساده در سطح اول بسازید. جست‌وجو روی زیرفیلدهای Repeater پیچیده و کند است.
  • Clone را برای بخش‌های تکراری مثل «دکمه‌ی فراخوان» به‌کار ببرید تا تغییر آن فقط در یک جا لازم باشد.

اشتباهات رایج

  • فراموش کردن 'option': فیلدهای Options Page بدون پارامتر دوم مقدار برنمی‌گردانند، چون ACF آن‌ها را در نوشته‌ی فعلی جست‌وجو می‌کند.
  • چاپ مستقیم خروجی: مقدار فیلد ورودی کاربر است. آن را با esc_html، esc_url یا wp_kses_post متناسب با نوع داده ایمن کنید.
  • Repeater خیلی بزرگ: هر زیرفیلد در هر ردیف یک رکورد جدا در جدول متا می‌سازد. برای صدها ردیف داده، پست‌تایپ سفارشی انتخاب بهتری است.
  • تغییر نام فیلد بعد از پر شدن: مقدارهای قبلی با نام قدیم ذخیره شده‌اند و با تغییر نام دیگر خوانده نمی‌شوند.
  • حذف ACF در سایتی که قالبش به آن وابسته است: قالبی که get_field را بدون بررسی صدا می‌زند، بعد از غیرفعال شدن افزونه از کار می‌افتد.

این فایل برای چه کسانی مناسب است؟

ACF PRO ابزار روزمره‌ی طراحان قالب و توسعه‌دهندگانی است که سایت سفارشی می‌سازند: سایت شرکتی با صفحه‌های بخش‌بندی‌شده، کاتالوگ محصول، املاک، رستوران یا هر سایتی که داده‌ی ساختاریافته دارد. اگر برای مشتری سایت می‌سازید و می‌خواهید او بدون دست زدن به صفحه‌ساز محتوا را عوض کند، Flexible Content و Options Page بیشترین کمک را می‌کنند. اگر فقط چند فیلد ساده لازم دارید، نسخه‌ی رایگان ACF کافی است.

سؤال‌های متداول

برای نصب ACF PRO باید نسخه‌ی رایگان ACF را نگه دارم؟

خیر. ACF PRO افزونه‌ی مستقلی است که همه‌ی امکانات نسخه‌ی رایگان را دارد. بعد از فعال کردن PRO نسخه‌ی رایگان را غیرفعال و حذف کنید؛ گروه‌های فیلد و مقدارها حفظ می‌شوند.

اگر ACF PRO را غیرفعال کنم داده‌ها از بین می‌روند؟

خیر. مقدار فیلدها در پایگاه داده‌ی وردپرس ذخیره می‌شود و با غیرفعال کردن افزونه پاک نمی‌شود. اما قالبی که از توابع ACF استفاده می‌کند تا فعال شدن دوباره‌ی افزونه آن مقدارها را نمایش نمی‌دهد.

Repeater و Flexible Content چه فرقی دارند؟

در Repeater همه‌ی ردیف‌ها زیرفیلدهای یکسانی دارند، مثل فهرست اعضای تیم. در Flexible Content هر ردیف می‌تواند چیدمان متفاوتی داشته باشد، مثلاً یک بنر، بعد یک بخش متن و تصویر و بعد یک گالری.

ACF PRO با المنتور کار می‌کند؟

بله. المنتور پرو با تگ‌های پویا مقدار فیلدهای ACF را در ویجت‌ها نمایش می‌دهد. برای فیلدهای پیچیده مثل Repeater معمولاً نوشتن قالب با PHP نتیجه‌ی دقیق‌تری دارد.

برای ساخت بلوک گوتنبرگ با ACF باید React بلد باشم؟

خیر. با ACF Blocks بلوک را با یک فایل block.json و یک قالب PHP تعریف می‌کنید و فیلدهای بلوک را مثل بقیه‌ی گروه‌های فیلد از پیشخوان می‌سازید.

گروه‌های فیلد را چطور به سایت دیگری منتقل کنم؟

از ابزار درون‌ریزی و برون‌بری ACF خروجی JSON بگیرید و در سایت مقصد درون‌ریزی کنید. اگر پوشه‌ی acf-json را در قالب ساخته باشید، فایل‌های JSON همراه قالب منتقل می‌شوند و ACF آن‌ها را برای همگام‌سازی نشان می‌دهد.

افزونه‌های مشابه و هم‌سطح

تغییرات نسخه‌ها

  1. 6.8.10آخرین نسخه
    • هفت اصلاح امنیتی، از جمله بررسی سرآیند فایل‌های PDF هنگام آپلود
    • اعمال مجوز خواندن در پاسخ REST فیلدهای Relationship، Post Object، Image، Gallery و File
    • انقضای توکن فرم‌های فرانت‌اند و اجرای همیشگی اعتبارسنجی فیلدها هنگام ارسال
  2. 6.8.9
    • پیش‌فرض شدن نسخه‌ی ۳ بلوک‌های ACF روی وردپرس ۷٫۱ و بالاتر، قابل تغییر با فیلتر
    • گزینه‌ی renderPreview در block.json برای نمایش جای‌نگهدار در ویرایشگر
    • پذیرش فایل SVG در فیلدهای Image و Gallery همراه افزونه‌ی Safe SVG
  3. 6.8.8
    • رفع رد شدن فایل‌های SVG در فیلدهای Image و Gallery
  4. 6.8.7
    • اعتبارسنجی سمت سرور تا فیلدهای Image و Gallery فقط تصویر بپذیرند
    • احراز هویت HMAC در توابع رمزگذاری و رمزگشایی
    • اعمال مجوز خواندن در جست‌وجوی AJAX فیلدهای Post Object، Page Link و Relationship

نظرات کاربران

ثبت نظر و امتیاز

هنوز نظری ثبت نشده؛ اولین نظر را شما بنویسید.

نظر و امتیاز خود را بنویسید

ایمیل شما منتشر نمی‌شود. نظرها پس از بازبینی منتشر می‌شوند.

با ارسال نظر، قوانین انتشار نظرات سایت را می‌پذیرید.
رایگان برای اعضاACF PRO · 6.8.10عضویت