تطوير إضافات ووردبريس: متى تحتاج إضافة مخصصة؟
عندما تصبح الوظيفة جزءًا من منطق الموقع وليست من شكله، غالبًا مكانها إضافة مخصصة لا ملف functions.php ولا Code Snippets.
1. ما الذي يوضع في الإضافة؟
أنواع المحتوى، الحقول، الصلاحيات، REST endpoints، الاستيراد، والنماذج يجب أن تعيش في إضافة. القالب يعرض هذه البيانات فقط.
هذا الفصل يجعل تغيير التصميم أسهل دون خسارة منطق الموقع.
- Custom Post Types.
- Taxonomies.
- Meta fields.
- Migrations and seed import.
- REST endpoints with permissions.
2. قواعد أمان لا يتم تجاوزها
كل إدخال من المستخدم يجب تنظيفه، وكل إخراج يجب تهريبه، وكل عملية تعديل تحتاج Nonce وصلاحية مناسبة.
لا تستخدم صلاحية عامة إذا كانت العملية تخص الإدارة فقط. ولا تجعل REST endpoint يغير بيانات دون فحص صلاحية.
- sanitize_text_field للحقول النصية.
- wp_kses_post للمحتوى المحدود.
- esc_html وesc_url عند الإخراج.
- current_user_can للصلاحيات.
- prepared statements عند التعامل المباشر مع قاعدة البيانات.
3. اختبار الإضافة
اختبر التفعيل، التعطيل، إعادة التفعيل، وتشغيل seed مرتين. أي تكرار غير مفسر في المحتوى أو الجداول يعني أن الاستيراد غير idempotent.
استخدم PHP lint على كل الملفات، وجرب لوحة الإدارة والواجهة قبل تسليم الإضافة.