في ما يلي ملخص لكيفية استخدام مكونات المكونات الإضافية لخطافات WordPress، وتحديدًا ميزة Block Hooks الجديدة المقدمة في WordPress 6.4:
1. مبادئ خطاف الكتل:
- التنسيب التلقائي: يمكن للكتل أن تضع نفسها تلقائيًا عند إضافة كتلة أخرى إلى المحتوى، مما يلغي الحاجة إلى الإدراج اليدوي.
- الرؤية والتحكم: تكون الكتلة المدرجة مرئية في المحرر، ويحتفظ المستخدمون بالتحكم في إدراجها التلقائي، مما يسمح بتجربة تحرير مخصصة.
2. القيود والاعتبارات:
- تعمل Block Hooks فقط في القوالب غير المعدلة، وأجزاء القالب، والأنماط التي توفرها السمات. وهي لا تعمل في محتوى المنشور أو القوالب/الأجزاء المعدلة أو الأنماط التي ينشئها المستخدم.
- اعتبارًا من إصدار WordPress 6.4، لا يعمل الإدراج التلقائي مع الكتل التي تحتوي على وظيفة حفظ مخصصة، حيث قد يؤدي ذلك إلى حدوث أخطاء في التحقق من صحة الكتلة. يجب على المطورين استخدام الكتل الديناميكية للتوافق.
3. طريقتان لربط الكتل:
أ. باستخدام `block.json`:
- يوفر طريقة بسيطة لربط كتلة تابعة لجهة خارجية، ولكن بمرونة محدودة.
- تسمح الخاصية `blockHooks` في `block.json` بتحديد موضع الكتلة المرتبطة (قبل، بعد، الطفل الأول، الطفل الأخير).
ب. استخدام مرشح `hooked_block_types`:
- يوفر مرونة أكبر مقارنة بـ `block.json`، مما يسمح بالربط المشروط بناءً على القالب أو جزء القالب أو النمط.
- تتلقى وظيفة رد الاتصال لـ `hooked_block_types` معلمات مثل الكتل المرتبطة، والموضع، وكتلة الارتساء، والسياق.
4. اعتبارات للمطورين:
- ستظهر الكتل المرتبطة في محرر الموقع، مما يتيح للمستخدمين التحكم في موضعها. لا يمكن للمطورين فرض موضع الكتلة إذا أراد المستخدم نقلها.
- لا يوصى بربط الكتل الثابتة (مع وظائف حفظ مخصصة)، لأنها قد تسبب أخطاء في التحقق من صحة الكتلة. الكتل الديناميكية هي الخيار المفضل لـ Block Hooks.
- يجب على المطورين التأكد من أن الكتل المرتبطة الخاصة بهم متوافقة مع إصدار WordPress الحالي وواجهة برمجة تطبيقات Block Hooks الخاصة به.
باختصار، توفر ميزة Block Hooks الجديدة في WordPress 6.4 وما بعده طريقة قوية لمكونات الكتلة الإضافية لإدراج كتلها تلقائيًا في مواقع محددة، مع الاستمرار في السماح للمستخدمين بالتحكم في وضع تلك الكتل داخل محرر الموقع.
اقتباسات:[1] https://github.com/WordPress/gutenberg/issues/54904
[2] https://kinsta.com/blog/wordpress-hooks/
[3] https://essential-blocks.com/block-hooks-everything-you-need-to-know/
[4] https://www.youtube.com/watch?v=ezPHiyhhaoQ
[5] https://developer.wordpress.org/block-editor/reference-guides/packages/packages-hooks/