⏱️ جاري الحساب…

معمارية قوالب الكتل: هيكل Block Theme ومصادر التخصيص

رسم مفاهيمي يوضح معمارية قوالب الكتل ضمن سلسلة تطوير ووردبريس
📋 فهرس محتويات المقال (اضغط للتنقل السريع) ▾

أهلاً بك يا صديقي في المحطة رقم 94 من رحلتنا المعمارية العميقة داخل نواة ووردبريس! لو كنت فاكر إن تطوير ثيمات ووردبريس لسه معتمد على ملف header.php وملف footer.php وحشر أكواد PHP داخل ملفات الـ HTML، فاسمح لي أقولك إن القطار اتحرك، والمشهد اتغير بالكامل. ووردبريس مع ظهور محرر الموقع بالكامل (Full Site Editing أو FSE) أحدثت ثورة جذرية وانتقلت من النموذج القديم (Classic Themes) إلى نموذج قوالب الكتل (Block Themes).

في هذا الدليل العملي المعمق، مش هنكتفي بسرد نظري؛ إحنا هنشرح معمارية الـ Block Theme تشريحاً جراحياً دقيقاً، هنشوف إزاي الكور بيفسر ملفات الـ HTML، إزاي شجرة الـ Templates و Template Parts بتتركب، إزاي ملف theme.json بقى هو العقل المدبر لكل خصائص التصميم، وهنبني مع بعض هيكل ثيم متكامل بأعلى معايير الأداء والإنتاجية مع كود وشرح تفصيلي ودراسة حالة حية من قلب السوق المصري!

الثورة المعمارية: وداعاً لـ PHP Spaghetti وأهلاً بالـ Declarative Templates

في الثيمات التقليدية (Classic Themes)، كان المتصفح بيستلم صفحة HTML ناتجة عن تنفيذ مئات الدوال الشرطية داخل PHP: if ( have_posts() ) : while ( have_posts() ) : the_post(); وملفات متناثرة زي sidebar.php و comments.php. لو العميل حب يغير موضع الـ Header أو ينقل اللوجو من اليمين للشمال، كان لازم المطور يفتح الكود ويعدل في الـ HTML والـ CSS، أو يتم بناء خيارات معقدة في الـ Customizer تبطئ الموقع وتخزن خيارات لا نهاية لها في جدول wp_options.

قوالب الكتل (Block Themes) غيرت الفلسفة دي 180 درجة إلى أسلوب الـ Declarative Templating. الثيم أصبح عبارة عن ملفات HTML نقية تحتوي على Block Grammar Comments (مثل <!-- wp:site-title /-->)، وملف تهيئة مركزي واحد بصيغة JSON هو theme.json. المحرر (Site Editor) بيقرأ هذه القوالب ويعرضها للمستخدم بطريقة WYSIWYG حقيقية بنسبة 100%، ولما المستخدم يعدل أي حاجة في الواجهة، التعديل بيتحفظ في قاعدة البيانات كـ Custom Post Type بدون المساس بملفات الكود الأصلية للثيم!

التشريح الجراحي لهيكل الـ Block Theme: المكونات والملفات الإلزامية

عشان ووردبريس يتعرف على الثيم كـ Block Theme حقيقي، في متطلبات بنيوية واضحة جداً. الملفات لم تعد ملفات PHP تنفيذية، بل مجلدات وهياكل قياسية كالتالي:


my-custom-block-theme/
├── style.css               # الترويسة التعريفية بالثيم (Theme Headers) وتنسيقات CSS الأساسية
├── theme.json              # العقل المدبر: إعدادات الألوان، الخطوط، التباعد، وأنماط الكتل
├── index.php               # ملف فارغ تماماً للأمان والتوافق العكسي (Fallback)
├── functions.php           # تسجيل الأنماط، الكتل الخاصة، ودعم الميزات (اختياري لكن مهم)
├── templates/              # قوالب الصفحات الكاملة بصيغة HTML
│   ├── index.html          # القالب الإلزامي الرئيسي
│   ├── single.html         # قالب تدوينة المقال الفردي
│   ├── page.html           # قالب الصفحات الثابتة
│   ├── archive.html        # قالب الأرشيف والتصنيفات
│   └── 404.html            # قالب صفحة الخطأ 404
├── parts/                  # أجزاء القوالب القابلة لإعادة الاستخدام (Template Parts)
│   ├── header.html         # رأس الموقع
│   ├── footer.html         # تذييل الموقع
│   └── sidebar.html        # الشريط الجانبي
└── patterns/               # الأنماط الجاهزة المسجلة تلقائياً بصيغة PHP أو HTML
    ├── hero-banner.php
    └── call-to-action.php

جدول المقارنة المعمارية: Classic Themes مقابل Block Themes

الجدول التالي بيلخص الفروق الجذرية بين معمارية الثيمات الكلاسيكية وقوالب الكتل الحديثة:

وجه المقارنةالثيمات الكلاسيكية (Classic Themes)قوالب الكتل (Block Themes / FSE)
لغة القوالب (Templates)ملفات PHP تحتوي على دوال ووردبريس وحلقات منطقية متداخلةملفات HTML تحتوي على تعليقات الكتل النظيفة (Block Markup)
نظام التصميم والألوانملفات CSS ضخمة وخيارات غير قياسية في Theme Customizerملف theme.json قياسي يولد CSS Variables تلقائياً
تخصيص الواجهة للمستخدممحدود بمناطق الودجات (Widgets) والـ Customizer والصفحات المنفصلةمحرر موقع كامل (Site Editor) للتحكم في الرأس والتذييل وكل عنصر
تأثير التخصيص على قاعدة البياناتتخزين إعدادات متفرقة في جدول wp_options وميتا البوستاتتخزين القوالب المعدلة كـ CPT في جدول wp_posts بنوع wp_template
الأداء وسرعة التحميلتوليد HTML عبر تنفيذ أكواد PHP كثيرة واستدعاء CSS عام ثقيلفصل التنسيقات وتحميل CSS الكتل المستخدمة فقط (Block Styles On-Demand)
إمكانية نقل التعديلات (Export)صعبة جداً وتتطلب تصدير خيارات الـ DB واستيرادها بإضافات مخصصةضغطة زر لتصدير كامل الثيم بجميع التعديلات كملف ZIP جاهز للنشر

كيف يعمل Block Template Hierarchy في نواة WordPress Core؟

نواة ووردبريس ما زالت تحتفظ بنفس منطق التسلسل الهرمي للقوالب (Template Hierarchy) المعروف للمطورين، لكن مع تغيير مسار البحث عن الملفات:

  1. أولاً: فحص قاعدة البيانات: يبحث ووردبريس أولاً عما إذا كان مدير الموقع قد قام بتعديل القالب وحفظه عبر محرر الموقع (Site Editor). يتم البحث في جدول wp_posts عن منشور بنوع wp_template أو wp_template_part يحمل نفس الـ Slug وحالته publish.
  2. ثانياً: فحص قوالب الـ Block Theme في الملفات: إذا لم يجد نسخة مخصصة في قاعدة البيانات، ينتقل الكور إلى مجلد templates/ داخل الثيم للبحث عن ملف .html مطابق للتسلسل الهرمي القياسي (مثلاً: single-product.html ثم single.html ثم singular.html ثم index.html).
  3. ثالثاً: السقوط الاحتياطي (Fallback): في حال عدم العثور على أي قالب كتل، يعود النظام إلى ملف index.html الإلزامي، وإذا لم يكن موجوداً يسقط على index.php الكلاسيكي.

كود عملي متقدم: بناء Block Theme جاهز للإنتاج من الصفر

تعال نبني مع بعض ملفات ثيم عملي احترافي يحقق أعلى معايير الجودة:

1. ملف style.css التعريفي


/*
Theme Name: Abozaid Cairo Block Theme
Theme URI: https://abozaid.net/block-theme
Author: Mohamed Abozaid
Author URI: https://abozaid.net
Description: قالب كتل متطور مصمم وفق أحدث معايير Full Site Editing في ووردبريس.
Version: 1.0.0
Requires at least: 6.5
Tested up to: 6.7
Requires PHP: 8.1
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: abozaid-block
Tags: full-site-editing, block-patterns, custom-colors, custom-spacing, translation-ready
*/

/* تنسيقات تكميلية دقيقة لا يغطيها theme.json */
.az-custom-focus:focus-visible {
    outline: 2px solid var(--wp--preset--color--primary);
    outline-offset: 4px;
}






جميع الحقوق محفوظة © 2026 - منصة أبو زيد التقنية

3. القالب الرئيسي: templates/index.html



ملف theme.json: الجسر بين الكود ونظام التصميم العالمي (Design System)

الملف ده هو الجوهرة الحقيقية لـ Block Themes. من خلاله بتحدد لوحة الألوان (Color Palette)، مقاسات الخطوط (Font Sizes)، هوامش التباعد (Spacing Scale)، وكمان بتتحكم في الخصائص اللي يقدر مدير الموقع يعدلها في محرر جوتنبرج أو تمنعها عنه عشان تحافظ على اتساق الهوية البصرية.


{
    "$schema": "https://schemas.wp.org/trunk/theme.json",
    "version": 3,
    "settings": {
        "appearanceTools": true,
        "layout": {
            "contentSize": "840px",
            "wideSize": "1200px"
        },
        "color": {
            "custom": false,
            "palette": [
                {
                    "slug": "primary",
                    "color": "#0d9488",
                    "name": "أخضر تيل أساسي"
                },
                {
                    "slug": "contrast",
                    "color": "#0f172a",
                    "name": "كحلي داكن"
                },
                {
                    "slug": "base",
                    "color": "#ffffff",
                    "name": "أبيض نقي"
                }
            ]
        },
        "typography": {
            "fluid": true,
            "fontFamilies": [
                {
                    "fontFamily": "Cairo, sans-serif",
                    "name": "Cairo",
                    "slug": "cairo"
                }
            ]
        }
    },
    "styles": {
        "color": {
            "background": "var(--wp--preset--color--base)",
            "text": "var(--wp--preset--color--contrast)"
        },
        "typography": {
            "fontFamily": "var(--wp--preset--font-family--cairo)",
            "lineHeight": "1.75"
        }
    }
}

دراسة حالة حقيقية: تحويل متجر أثاث في دمياط إلى Block Theme

أزمة متجر “أثاث دمياط المودرن”: من الشلل البرمجي إلى قمة الأداء

طبيعة المشروع: متجر ووردبريس وووكومرس لعرض وتسويق أثاث غرف النوم والسفرة الفاخرة المصنعة في مدينة دمياط، يزوره يومياً أكثر من 45,000 زائر من مصر ودول الخليج العربي عبر حملات فيسبوك وتيك توك الترويجية.

1. الأزمة التشخيصية (The Crisis)

المتجر كان يعمل بقالب تجاري قديم متعدد الاستخدامات (Multipurpose Classic Theme) مدمج معه منشئ صفحات بطيء (Page Builder). مع كل طلب تعديل من فريق التسويق (مثل تغيير موضع بانر العيد أو إضافة قسم فيديو تعريفي في الهيدر)، كان المطور يضطر لتعديل ملفات PHP وقواعد CSS معقدة. النتيجة: ملفات CSS بحجم 1.8 ميجابايت، زمن تفاعلية (INP) متدهور وصل إلى 580ms، ونقاط Google PageSpeed على الموبايل لا تتجاوز 28/100!

2. التشخيص المعماري (Diagnostic)

بالفحص المعمق، تبين أن منشئ الصفحات القديم يقوم بتحميل 48 ملف JavaScript و 32 ملف CSS في كل صفحة حتى لو لم تكن مستخدمة، إضافة إلى إرسال استعلامات متكررة للـ Database لجلب خيارات الـ Theme Options المخزنة في wp_options بحجم يتجاوز 12 ميجابايت!

3. خطة الإنقاذ والحل الجذري (The Solution)

قام الفريق المعماري بإعادة بناء المتجر كلياً باستخدام Full Site Editing Block Theme خفيف وخالٍ من أي Page Builder خارجي:

  • تم تحويل الهيدر والفوتر إلى Template Parts قياسية سريعة.
  • تمت صياغة ملف theme.json موحد يحتوي على كل متغيرات الألوان والخط العربي المحلي (Cairo) بميزة Fluid Typography.
  • تم بناء أنماط كتل مخصصة (Custom Block Patterns) لكتالوج المنتجات تسمح لفريق التسويق بإسقاط وتعديل الأقسام في ثوانٍ معدودة مباشرة من محرر الموقع.

4. جدول مقارنة مؤشرات الأداء الحقيقية (Metrics Table)

مؤشر الأداء المعماريقبل التحويل (Classic Theme + Page Builder)بعد التحويل (Block Theme + theme.json)نسبة التحسن والوفر
حجم ملفات CSS الإجمالي1,840 كيلوبايت42 كيلوبايت فقطوفر بنسبة 97.7%
زمن التحميل الكلي (LCP)4.9 ثانية على شبكة 4G1.1 ثانية فقطتحسن بنسبة 77.5%
مؤشر تفاعلية الصفحة (INP)580ms (نطاق أحمر رديء)48ms (نطاق أخضر فائق)تحسن بنسبة 91.7%
معدل إتمام الشراء (Conversion Rate)1.2%3.4%ارتفاع بنسبة 183% في المبيعات

الوصايا العشر لمهندسي قوالب الكتل الحديثة

  1. اجعل ملف theme.json مرجعك الأوحد: لا تكتب أكواد CSS يدوية لأمور يمكن تعريفها بسهولة في ملف theme.json مثل الألوان والهوامش ومقاسات الخطوط.
  2. لا تحذف index.php أبداً: حتى في قوالب الكتل النقية بنسبة 100%، وجود ملف index.php فارغ يضمن حماية المجلد ويمنع أخطاء السقوط عند استعراض ملفات القالب.
  3. اعتمد على Block Patterns بدلاً من القوالب الصلبة: أنماط الكتل (Patterns) تمنح العملاء مرونة رهيبة في إعادة استخدام التخطيطات بدون المساس بهيكل القالب الأساسي.
  4. استخدم Semantic HTML Tags في الحاويات: احرص على تحديد "tagName": "header" أو "main" أو "aside" في كتل Group و Template Parts لدعم إمكانية الوصول (Accessibility).
  5. فعّل خاصية Fluid Typography: اجعل نصوص موقعك تتكيف تلقائياً مع أحجام الشاشات المختلفة دون الحاجة لكتابة عشرات من الـ Media Queries اليدوية.
  6. نظف صلاحيات المستخدم في محرر الكتل: أغلق الخيارات غير الضرورية (مثل Custom Colors) لمنع المحررين من تخريب الهوية البصرية المتفق عليها.
  7. لا تضع أكواد منطق برمجية داخل templates HTML: ملفات الـ HTML داخل مجلد templates/ مخصصة لتمثيل الكتل فقط؛ أي معالجة PHP مكانها في functions.php أو إضافات مخصصة.
  8. استخدم Dynamic Block Rendering عند الحاجة للبيانات الحية: إذا كان لديك عنصر يعتمد على جلسات المستخدم أو بيانات تتغير في كل ثانية، استخدم كتلة ديناميكية (Dynamic Block) وليس كتلة ثابتة.
  9. افحص القوالب المحفوظة في قاعدة البيانات قبل النشر: تذكر أن التعديلات التي يجريها العميل في الـ Site Editor تُخزن في الـ DB ولن تظهر في ملفات Git الخاصة بك إلا إذا قمت بتصديرها أو مزامنتها.
  10. اعتمد معايير WordPress Coding Standards: حافظ على وضوح الـ Block Grammar وتوثيق الأنماط لتسهيل الصيانة المستقبلية وتسليم المشروع للفرق التقنية.

القوالب الابنة في Block Themes وتقنية Block Hooks API الثورية

واحدة من أعظم التطورات اللي حصلت في ووردبريس 6.4 وما بعدها هي إمكانية بناء قوالب ابنة (Child Themes) تعتمد فقط على ملف theme.json دون الحاجة لكتابة سطر PHP واحد! في النموذج الكلاسيكي، كنت مضطر تعمل Child Theme وتنسخ ملفات ضخمة عشان تغير لون زرار أو حجم خط. في الـ Block Themes، تقدر تعمل مجلد جديد يحتوي على:

  • ملف style.css يشير إلى الـ Template الأب عبر Template: parent-theme-slug.
  • ملف theme.json فرعي يقوم بعمل دمج وراثي (Inheritance Merge)؛ يعني بتكتب فيه فقط القيم اللي عايز تغيرها، ونواة ووردبريس تدمجها أوتوماتيكياً مع إعدادات القالب الأب مع أسبقية للقالب الابن.

مش بس كده، ووردبريس قدمت ميزة ثورية اسمها Block Hooks API (المعروفة سابقاً بـ Auto-inserting Blocks). الفكرة دي بتشبه فكرة الـ Action Hooks في PHP، لكنها مخصصة للكتل في قوالب الكتل! تخيل إنك بتطور إضافة تسويق أو زر إعجاب، وعايز الكتلة بتاعتك تظهر تلقائياً بعد كتلة core/post-content أو قبل core/comments في كل صفحات الموقع بدون ما تطلب من المستخدم يفتح محرر الموقع ويضيفها يدوي!


// functions.php أو ملف الإضافة المخصصة
add_filter( 'hooked_block_types', function( $hooked_blocks, $position, $anchor_block, $context ) {
    // عايزين نحقن بلوك شريط التنبيهات المخصص قبل الهيدر في القالب الرئيسي
    if ( 'core/template-part' === $anchor_block && 'before' === $position ) {
        // نتحقق من أن الجزء المستهدف هو الهيدر
        if ( isset( $context['attributes']['slug'] ) && 'header' === $context['attributes']['slug'] ) {
            $hooked_blocks[] = 'abozaid/emergency-top-alert';
        }
    }
    return $hooked_blocks;
}, 10, 4 );

الكود ده بيوضح إزاي نواة ووردبريس أثناء عملية تحليل الـ Block Templates بتفحص الخطافات البرمجية، وتحقن الكتلة ديناميكياً في شجرة الـ DOM. ده بيعطي مطوري الإضافات في مصر والعالم العربي قوة غير مسبوقة لبناء حلول تتكامل بنعومة متناهية مع أي Block Theme حديث دون كسر تصميم العميل.

دورة حياة معالجة القالب (Template Resolution Lifecycle) خلف الكواليس

لما الزائر يفتح صفحة مقال، الكور بينفذ الخطوات التالية بدقة متناهية: 1. استدعاء ملف template-loader.php. 2. الدالة locate_block_template() بتفحص إذا كان في كتل معرفة لهذا الرابط. 3. الدالة _get_block_template_file() بتحدد الملف الفيزيائي في الثيم أو السجل المخصص في جدول المنشورات. 4. الدالة do_blocks() بتستلم شجرة الـ HTML الناتجة وتبدأ تحللها عبر Block Parser. 5. استدعاء كل Render Callbacks للكتل الديناميكية، ودمج أنماط Global Styles المجمعة من theme.json داخل وسم <style id="wp-block-theme-inline-css"> في رأس الصفحة. 6. تسليم وثيقة HTML خفيفة وصاروخية للمتصفح في أجزاء من الثانية!

استراتيجيات الاختبار والاعتماد البرمجي لقوالب الكتل قبل النشر في الإنتاج

عشان تضمن إن قالب الكتل بتاعك خالي من الأخطاء العميقة، بننصح باتباع مصفوفة اختبار ثلاثية المحاور: أولاً، فحص سلامة ملف theme.json عبر أدوات الـ JSON Schema ومطابقته مع مستودع ووردبريس الرسمي للتأكد من عدم وجود خواص مكتوبة بطريقة خاطئة أو ألوان ناقصة. ثانياً، فحص التوافقية العكسية عبر تفعيل الإضافات الشائعة مثل WooCommerce و Yoast SEO والتأكد من أن كتل المحتوى والحقول المخصصة تظهر في أماكنها الطبيعية دون تشويه في الـ CSS Grid أو Flexbox Layouts. ثالثاً، قياس واختبار مؤشرات الأداء الحيوية (Core Web Vitals) باستخدام أدوات Lighthouse و PageSpeed Insights على أجهزة موبايل حقيقية بشبكات 4G متوسطة، والتأكد من بقاء مؤشر Cumulative Layout Shift (CLS) عند الصفر المطلق ومؤشر LCP تحت 1.2 ثانية.

20 سؤالاً وجواباً معمارياً متقدماً حول Block Themes

1. ما هو الفرق الأساسي بين Classic Theme و Block Theme في ووردبريس؟

الثيم الكلاسيكي يعتمد كلياً على ملفات PHP (مثل index.php و header.php) لتوليد كود الـ HTML برمجياً، بينما قالب الكتل يعتمد على ملفات HTML معيارية تحتوي على Block Grammar Comments وملف تهيئة مركزي theme.json لإدارة المظهر والتخطيط بدون برمجة PHP مباشرة داخل القوالب.

2. هل وجود ملف index.php إلزامي في قوالب الكتل الحديثة؟

نعم، وجود ملف index.php فارغ يعتبر ممارسة إلزامية لأسباب أمنية وتوافقية لمنع استعراض المجلدات في السيرفر وضمان تعرف نواة ووردبريس على الثيم في كافة السيناريوهات العكسية القديمة.

3. أين يتم تخزين التعديلات التي يقوم بها العميل في محرر الموقع (Site Editor)؟

تُخزن في جدول wp_posts كمنشورات مخصصة (Custom Post Types) بنوع wp_template للقوالب الكاملة، وبنوع wp_template_part للأجزاء مثل الهيدر والفوتر، مما يعني أنها لا تعدل ملفات الثيم الأصلية الموجودة على القرص الصلب.

4. ماذا يحدث لو حذف العميل قالباً معدلاً من محرر الموقع بالخطأ؟

يوفر محرر الموقع زراً اسمه “Clear Customizations”؛ عند الضغط عليه أو حذف السجل من قاعدة البيانات، يسقط ووردبريس فورياً على ملف الـ HTML الأصلي الموجود داخل مجلد templates في الثيم دون فقدان للتصميم الأساسي.

5. كيف يمكن للمطور تصدير التعديلات التي تمت في محرر الموقع إلى ملفات الكود؟

من داخل محرر الموقع (Site Editor)، يمكن فتح القائمة الجانبية (الثلاث نقاط) والضغط على خيار “Export”؛ سيقوم ووردبريس بتوليد ملف ZIP يحتوي على ملفات HTML المحدثة وملف theme.json المعدل لتضمينها مباشرة في مستودع Git.

6. ما هو دور ملف theme.json الإصدار 3 (Version 3) في إدارة الـ CSS؟

يقوم الكور بتحليل theme.json وتوليد مئات من متغيرات CSS القياسية (CSS Custom Properties) مثل –wp–preset–color–primary وحقنها تلقائياً في الواجهة ولوحة التحكم، مما يلغي الحاجة لكتابة CSS يدوي لأغلب العناصر.

7. ما هو الفرق بين مجلد templates/ ومجلد parts/ في هيكل الثيم؟

مجلد templates يحتوي على قوالب الصفحات الكاملة (مثل index.html و single.html)، بينما مجلد parts يحتوي على المكونات الجزئية القابلة للتضمين والتكرار عبر عدة قوالب مثل header.html و footer.html.

8. كيف نحدد منطقة الجزء (Area) لـ Template Part في ووردبريس؟

يتم تحديد المنطقة إما داخل وسم التعليق في القالب عبر خاصية “area”:”header” أو عبر تعريف مصفوفة templateParts داخل ملف theme.json لتصنيف الأجزاء كـ header أو footer أو general.

9. هل يمكن استخدام ملف functions.php داخل قوالب الكتل؟

نعم بالتأكيد! ملف functions.php يعمل بكامل طاقته في قوالب الكتل، ويستخدم لتسجيل خطوط الويب، تسجيل الأنماط البرمجية، ربط أكواب الـ Hooks، أو إضافة كتل مخصصة جديدة.

10. كيف يعمل نظام الـ Fluid Typography المدمج في theme.json؟

عند تفعيل “fluid”: true تحت قسم typography، يقوم ووردبريس بحساب دالة CSS clamp() تلقائياً لكل مقاس خط محدد، ليتغير حجم النص بسلاسة بين الشاشات الصغيرة والكبيرة دون الحاجة لـ Media Queries.

11. ما هي ميزة Block Styles On-Demand في تحسين أداء الموقع؟

في قوالب الكتل، لا يتم تحميل ملف الـ CSS الخاص بكتلة معينة إلا إذا كانت تلك الكتلة مستخدمة فعلياً في الصفحة المعروضة، مما يقلل حجم ملفات التنسيق المنقولة عبر الشبكة بشكل كبير جداً مقارنة بالثيمات الكلاسيكية.

12. كيف نقوم بتسجيل Block Pattern داخل قالب الكتل؟

أسهل طريقة في ووردبريس الحديث هي وضع ملف PHP داخل مجلد patterns/ في الثيم مع ترويسة قياسية تحتوي على Title و Slug و Categories؛ وسيقوم الكور بتسجيل النمط تلقائياً دون الحاجة لاستدعاء دالة register_block_pattern().

13. هل يمكن دمج كود PHP تنفيذي داخل ملف templates/index.html؟

لا، ملفات القوالب في Block Themes يتم تحليلها بواسطة محرر الكتل ومحلل HTML الخاص بووردبريس؛ كتابة أكواد PHP داخلها لن تنفذ وستظهر كنص أو تعليق مهمل. المنطق البرمجي ينفذ عبر كتل ديناميكية Render Callback.

14. ما هو مفهوم Hybrid Theme (الثيم الهجين)؟

هو ثيم كلاسيكي في الأصل مبني بملفات PHP، لكنه يتبنى ملف theme.json للاستفادة من نظام التصميم الحديث والألوان والخطوط مع الاحتفاظ بالقوالب الكلاسيكية ومناطق الودجات القديمة.

15. كيف نمنع المستخدم من تغيير ألوان معينة أو كتابة قيم CSS عشوائية؟

عن طريق ضبط “custom”: false في قسم color داخل theme.json، أو إغلاق الخصائص الفردية مثل “color.gradients”: false أو “typography.fontStyle”: false لفرض الاتساق على المحررين.

16. كيف يتعامل Block Theme مع إضافة WooCommerce؟

يتكامل معها بسلاسة تامة عبر قوالب كتل مخصصة مثل archive-product.html و single-product.html واستخدام كتل وووكومرس الحديثة مثل Cart Block و Checkout Block لتجربة تسوق متكاملة قابلة للتعديل بصرياً.

17. كيف نقوم بإرفاق خط عربي محلي (Self-hosted Cairo Font) في theme.json؟

يتم تعريف الخط داخل مصفوفة fontFamilies وتحديد رابط ملف الـ woff2 داخل مجلد الثيم عبر خاصية “src”: [“file:./assets/fonts/cairo-bold.woff2”] وسيقوم الكور بحقن @font-face المحسنة تلقائياً مع خاصية font-display: swap.

18. ما هو تأثير قوالب الكتل على مؤشرات الويب الحيوية Core Web Vitals؟

تؤدي لتحسن هائل في LCP و INP بفضل غياب منشئي الصفحات الثقيلة، انعدام الـ Render-blocking JavaScript، تحميل CSS الكتل عند الطلب فقط، ودعم معايير HTML الحديثة بدون تداخل أكواد زائدة.

19. كيف نختبر التوافق العكسي للقالب مع محرري الشاشات وإمكانية الوصول؟

يجب التأكد من وسم كل قالب بعناصر HTML دلالية (Semantic Tags)، توفير وسوم ARIA عند الضرورة، وضمان توافق تباين الألوان المحدد في theme.json مع معايير WCAG 2.1 AA على الأقل.

20. ما هي أفضل ممارسة لإدارة التحديثات في Block Theme مستقبلاً؟

استخدام Child Theme أو الاعتماد على أنماط الكتل و theme.json الخالي من التعديلات الصلبة في الكود، مع توثيق شجرة المكونات وتجنب تجاوز دوال الكور لضمان تحديث ووردبريس بأمان تام.

الصورة الرمزية لـ Mohamed Abozaid

م. محمد أبو زيد

WordPress Architect & Enterprise Consultant

مهندس برمجيات متخصص في تطوير حلول ووردبريس المتقدمة، معمارية Block Themes، ومحرر Gutenberg، وتحسين الأداء لمواقع الشركات الكبرى في مصر والخليج العربي.


اترك تعليقاً