Advanced Custom Fields (ACF) توسّع WordPress من محرر مقالات وصفحات إلى نظام Content Modeling أكثر تنظيمًا. بدل تخزين كل شيء داخل نص الصفحة، تستطيع إنشاء حقول واضحة مثل السعر، الموقع، المواصفات، الرابط، الصورة، العلاقة بمحتوى آخر، ثم عرض هذه البيانات داخل القالب أوBlocks أوREST/API حسب مشروعك.
في 2026 لم تعد ACF مجرد “إضافة حقول مخصصة”. الواجهة الحالية تستطيع أيضًا تسجيل Custom Post Types وCustom Taxonomies، بينما تضيف ACF PRO ميزات مثل Repeater وFlexible Content وGallery وOptions Pages وACF Blocks.
المصدر الرسمي: أحدث إصدار أصلي منشور وقت تحديث هذا الدليل هو ACF 6.8.9. راجع ACF Downloads وChangelog بدل الاعتماد على رقم إصدار ثابت طويلًا.
ما المشكلة التي تحلها ACF؟
تخيل موقع عقارات. كل عقار يحتاج:
- السعر.
- المساحة.
- عدد الغرف.
- الموقع.
- صورًا.
- نوع العقار.
- وسائل الراحة.
يمكن كتابة كل ذلك كنص يدوي، لكنك ستفقد الاتساق وإمكانية الفرز وإعادة استخدام البيانات. ACF تسمح بتحويل هذه العناصر إلى حقول منظمة يملؤها المحرر بنفس البنية في كل عقار.
Field Group وLocation Rules
الهيكل الأساسي في ACF هو Field Group: مجموعة حقول مرتبطة بشروط ظهور. مثلًا يمكنك إظهار مجموعة “مواصفات العقار” فقط على Post Type اسمه Property.
Location Rules تستطيع ربط الحقول بالصفحات والمقالات وCPTs وTaxonomies والمستخدمين وMedia وغيرها وفق ما تدعمه النسخة الحالية.
أنواع الحقول
ACF Free تتضمن عددًا كبيرًا من Field Types الأساسية، من بينها نصوص وأرقام وURLs وصور وFiles وSelect/Checkbox وRelationship/Post Object وTaxonomy وUser وغيرها.
لا تختار نوع الحقل بناءً على شكل الواجهة فقط؛ اختره بناءً على نوع البيانات التي ستخزنها وما ستفعله بها لاحقًا.
| البيانات | حقل مناسب |
|---|---|
| رقم سعر أوكمية | Number |
| رابط | URL |
| صورة | Image |
| اختيار من قائمة ثابتة | Select / Radio |
| ربط بمقال أومنتج آخر | Post Object / Relationship |
| تصنيف من Taxonomy | Taxonomy |
Conditional Logic
Conditional Logic تجعل الحقول تظهر أوتختفي حسب قيمة حقل آخر. مثال: إذا اختار المحرر “العقار مفروش”، يظهر حقل تفاصيل الأثاث.
هذه الميزة مفيدة لتقليل الفوضى في شاشة التحرير، لكنها ليست Business Logic أمنيًا؛ إخفاء حقل في الواجهة لا يعوض Validation وصلاحيات الحفظ في الكود عندما تكون البيانات حساسة.
Custom Post Types وTaxonomies من ACF
منذ ACF 6.1 يمكن تسجيل Custom Post Types وCustom Taxonomies من واجهة ACF نفسها، ثم ربط Field Groups بها. هذا يقلل الحاجة إلى Plugin منفصل لمجرد إنشاء CPT بسيط.
المصدر الرسمي: ACF – Post Types and Taxonomies.
قبل إنشاء CPT اسأل:
- هل المحتوى نوع مستقل فعلًا أميمكن أن يكون Category/Taxonomy؟
- هل يحتاج Archive وSingle URL؟
- هل يحتاج REST API؟
- هل يجب أن يدعم Title/Editor/Thumbnail/Author؟
- ماذا يحدث لو تعطلت ACF؟
كيف تعرض قيمة ACF في القالب؟
ACF موجهة للمطورين أيضًا، وتوفر API مثل get_field() وthe_field(). مثال مبسط:
<?php
$subtitle = get_field( 'subtitle' );
if ( $subtitle ) {
echo esc_html( $subtitle );
}
?>لا تطبع قيمة المستخدم بلا Escape مناسب للسياق. النص يحتاج Escape يختلف عن URL أوHTML مسموح، ووجود ACF لا يلغي قواعد WordPress الأمنية.
ACF Free أم ACF PRO؟
النسخة المجانية مناسبة لعدد كبير من مواقع المحتوى، بينما ACF PRO تضيف Field Types وميزات موجهة للتركيبات الأكثر تعقيدًا.
| الميزة | Free | PRO |
|---|---|---|
| Field Groups وحقول أساسية | نعم | نعم |
| CPT وTaxonomies UI | نعم | نعم |
| Repeater | لا | نعم |
| Flexible Content | لا | نعم |
| Gallery | لا | نعم |
| Clone | لا | نعم |
| Options Pages | لا | نعم |
| ACF Blocks | لا | نعم |
المصدر الرسمي: ACF FAQ وACF PRO. لا أثبت سعرًا في عنوان المقال؛ راجع صفحة الشراء لأن الأسعار والسياسات يمكن أن تتغير.
Repeater وFlexible Content: لا تستخدمهما بلا حدود
Repeater مناسب عندما لديك مجموعة متكررة من Sub Fields، مثل أعضاء فريق أوخطوات. Flexible Content يسمح بمجموعات Layouts مختلفة يمكن للمحرر ترتيبها.
لكن تحويل الصفحة كلها إلى Flexible Content ضخم قد يصنع Page Builder خاصًا صعب الصيانة. استخدمه عندما يكون نموذج المحتوى فعليًا مرنًا، لا لمجرد تجنب Gutenberg أوTemplates.
Options Pages
Options Pages في PRO مناسبة لبيانات Global مثل هاتف الشركة أوعناوين الفروع أوبيانات Footer التي لا تنتمي إلى Post واحد. البيانات المحفوظة هناك تكون Global ويمكن استدعاؤها عبر API.
لا تستخدم Options Page لتخزين بيانات يجب أن يكون لها تاريخ أوصلاحيات أوArchive منفصل؛ عندها CPT غالبًا أنسب.
ACF Blocks في 2026
ACF PRO توفر Framework لبناء Gutenberg Blocks ديناميكية باستخدام PHP وCustom Fields. هناك تغيير حديث مهم: في ACF PRO 6.8.9 أصبحت Blocks التي لا تحدد Version صراحة تُسجل افتراضيًا كـV3 على WordPress 7.1+.
Blocks V3 مرتبطة بتغيرات حديثة في Block Editor، وACF توفر Compatibility path للمشاريع القديمة. لا ترقِ Block library كبيرة على Production بدون Staging.
المصدر الرسمي: ACF PRO 6.8.9 – Blocks V3.
Local JSON
ACF تستطيع حفظ Field Groups كJSON محليًا، ما يساعد فرق التطوير على نقل وتعقب بنية الحقول داخل Version Control ومزامنتها بين البيئات.
هذا مفيد خصوصًا مع Git وStaging، لكنه لا يستبدل Backup لقاعدة البيانات أوMigration strategy؛ JSON يمثل تعريفات الحقول وليس كل قيم المحتوى.
ميزات ACF 6.8 الحديثة
ACF 6.8 أضافت قدرات حديثة تشمل تكاملًا اختياريًا مع WordPress Abilities API، أوامر WP-CLI لإدارة ACF JSON، وخيارات مرتبطة بالـSchema عند تفعيل Feature flags المناسبة. هذه ميزات للمطورين وليست سببًا لتفعيل كل شيء تلقائيًا.
استخدم Features الحديثة فقط عندما لديك Consumer أوWorkflow واضح، وراجع الصلاحيات قبل فتح أي قدرة لأداة Automation أوAI.
ACF أم Secure Custom Fields (SCF)؟
هنا يجب التفريق بدقة. في أكتوبر 2024 أعلنت WordPress.org إنشاء Secure Custom Fields كFork من ACF ضمن نزاع WordPress/WP Engine. في 2026 المشروعان موجودان كمنتجين منفصلين ويتلقيان تحديثات مستقلة.
- ACF: المشروع الأصلي الذي تطوره WP Engine/فريق ACF، ومتوافر من موقع ACF، كما تظهر حاليًا صفحة ACF على WordPress.org بإصدارات 6.8.x.
- SCF: Community plugin مستقل على WordPress.org وله سلسلة إصدارات مختلفة.
لا تفترض أن رقم إصدار أوFeature في أحدهما موجود تلقائيًا في الآخر. قبل تبديل Plugin على موقع قائم، اختبر Compatibility والحقول وBlocks وIntegrations على Staging.
هل ACF “بدون كود”؟
هي تقلل الكود المطلوب لإدارة الحقول، لكن في المشاريع المخصصة غالبًا ستحتاج كودًا لعرض القيم وبناء Queries وTemplates وPermissions وValidation. بعض القوالب وBuilders تستطيع ربط Dynamic Data مباشرة، لكن ذلك يخلق Dependency أخرى يجب حسابها.
الأداء وقواعد البيانات
قيم ACF التقليدية غالبًا تستخدم WordPress metadata. عشرات الحقول ليست مشكلة تلقائيًا، لكن Queries معقدة تعتمد على meta_query على كميات ضخمة من المحتوى يمكن أن تصبح مكلفة.
لا تستخدم Custom Fields كبديل لكل نموذج بيانات. عندما تحتاج تقارير أوعلاقات ضخمة أوبحثًا مكثفًا، قيّم Taxonomies أوCustom Tables أوArchitecture أخرى.
Checklist قبل إطلاق مشروع ACF
- حدد Content Model قبل إنشاء الحقول.
- اختر Field Types حسب نوع البيانات.
- استخدم Location Rules ضيقة وواضحة.
- لا تكرر نفس البيانات في أكثر من Field Group بدون سبب.
- Escape القيم عند العرض.
- راجع REST permissions إذا كنت تعرض الحقول خارجيًا.
- استخدم Local JSON إذا كان الفريق يحتاج Version Control للبنية.
- اختبر PRO Blocks على Staging عند الترقية إلى V3.
- لا تبدل بين ACF وSCF على Production بدون اختبار Compatibility.
الخلاصة
ACF في 2026 أداة Content Modeling وليست مجرد زر لإضافة حقل. النسخة Free تكفي لكثير من نماذج المحتوى وCPTs/Taxonomies، بينما PRO مفيدة عند الحاجة إلى Repeater وFlexible Content وOptions Pages وBlocks. صمم نموذج البيانات أولًا، ثم اختر الحقول والـAPI والـBlocks بما يقلل التعقيد بدل تحويل WordPress إلى شبكة Metadata يصعب صيانتها.


1 تعليق