5.4 · مقدمة إلى تطوير WordPress

المستوى 5 · الصيانة، الأمان المتقدم & التطوير

5.4مقدمة إلى تطوير WordPress

الهدف: فهم آلية الخطافات ومعرفة أين نضع جزءًا صغيرًا من الكود دون المساس بنواة WordPress.
الوقت المقدّر: 20 دقيقة · قراءة ذاتية · إذا كان لديك 5 دقائق فقط: اقرأ «الأساسي في 30 ثانية» + المخطط.

الأساسي في 30 ثانية

  • الخطافات (hooks) هي آلية توسيع WordPress: نُدخل كودًا دون تعديل النواة.
  • الإجراء (action) = تنفيذ شيء في لحظة ما؛ المرشّح (filter) = تعديل بيانات أثناء مرورها.
  • الكود المخصص يوضع في functions.php لقالب فرعي، لا في القالب الرئيسي ولا في النواة، ويُختبر محليًا.

حالة مصغّرة متسلسلة — تعديل صغير على المقاس

يريد حسن إضافة عبارة «قطعة فريدة» تحت سعر الإبداعات. يبحث سمير أولًا عن إضافة؛ فلا توجد إضافة مطابقة تمامًا. يكتب عندئذ مرشّحًا صغيرًا في القالب الفرعي، مُختبَرًا محليًا، يضيف العبارة على الفئة المعنية فقط. يوثّق المقتطف ليتمكن من العثور عليه لاحقًا.

تكملة الحالة 5.3 — بعد الامتثال، قليل من الكود على المقاس.

1. آلية الخطافات

صُمم WordPress ليُوسَّع دون تعديله. الآلية المركزية هي الخطاف (hook): نقطة ارتكاز نُعلّق عليها كودنا. تتيح الإجراءات (actions) تنفيذ شيء في لحظة محددة (بعد حفظ مقال، عند إرسال بريد إلكتروني)؛ وتتيح المرشّحات (filters) تعديل بيانات أثناء مرورها (عنوان، سعر، نص).

تستخدم القوالب والإضافات هذه الخطافات بكثافة: وهذا ما يتيح تعايشها. يكفي فهم هذا المنطق لقراءة كثير من كود WordPress والتدخل أحيانًا، دون أن تصبح مطوّرًا فورًا.

2. أين نضع الكود

يحتوي القالب على قوالب عرض وأنماط وملف functions.php نُعلن فيه الدوال. أما الإضافة فهي حزمة مستقلة تضيف وظائف. لا يلمس سمير أبدًا نواة WordPress: التحديث التالي سيمحو كل شيء.

يُوضع الكود المخصص في functions.php لقالب فرعي (أو في إضافة صغيرة مخصصة)، لا في القالب الرئيسي أبدًا. ويُختبر محليًا أو على بيئة الاختبار، ويُعلَّق عليه، ويُنسخ احتياطيًا. غالبًا ما يكون مقتطف موجّه أفضل من إضافة ضخمة لحاجة دقيقة جدًا.

خطأ شائع في الفهم: «يمكنني لصق الكود في functions.php للقالب الرئيسي». لا: تحديث القالب التالي سيمحو الملف. القالب الفرعي (أو إضافة منزلية) هو المكان الآمن.
توسيع WordPress بالخطافات يطلق WordPress حدثًا، فيستدعي الخطاف كودك الموضوع في القالب الفرعي. حدث فيWordPress+خطافإجراء/مرشّح+كود فيالقالب الفرعي+نتيجةمعدَّلة الخطاف يعلّق كودك في اللحظة المناسبة؛ والكود يعيش في القالب الفرعي.
مبدأ الخطاف: نقطة ارتكاز، وكود في القالب الفرعي.
نص المخطط (SEO / قارئات الشاشة / الترجمة): 1) يطلق WordPress حدثًا. 2) يستدعي خطاف (إجراء أو مرشّح) كودك. 3) يوضع الكود في القالب الفرعي. 4) تظهر النتيجة. الدرس: وسّع دون تعديل النواة.

🔎 مثال ملموس — إضافة عبارة إلى فئة (حالة سمير)

الحاجة: «قطعة فريدة» تحت السعر، فئة creations.
1. البحث عن إضافة ← لا توجد إضافة مطابقة.
2. القالب الفرعي مفعّل.
3. مرشّح مُختبَر محليًا على السعر المعروض.
4. التحقق: فئة creations فقط.
5. مقتطف مُعلَّق + نسخة احتياطية.
→ لا تعديل على القالب الرئيسي.

النتيجة: تعديل دقيق ومستدام.

الدرس: ابحث عن الإضافة أولًا، ثم اكتب الكود، ودائمًا في القالب الفرعي.

مفردات القسم

الخطاف (Hook)
نقطة ارتكاز نعلّق عليها كودًا لتوسيع WordPress.

مثال بسيط: مرشّح على السعر المعروض.

ما ليس كذلك: تعديل نواة WordPress.

رد فعل: وسّع بالخطافات، لا بالنواة.

الإجراء (Action)
خطاف ينفّذ كودًا في لحظة محددة.

مثال بسيط: إرسال إشعار بعد النشر.

ما ليس كذلك: الخلط بين الإجراء والمرشّح.

رد فعل: الإجراء = فعل في لحظة.

المرشّح (Filter)
خطاف يعدّل بيانات أثناء مرورها ويعيدها.

مثال بسيط: إضافة عبارة إلى السعر.

ما ليس كذلك: العرض المباشر دون إعادة القيمة.

رد فعل: المرشّح = تعديل وإرجاع.

functions.php
ملف في القالب نعلن فيه الدوال والخطافات.

مثال بسيط: ملف القالب الفرعي.

ما ليس كذلك: تحرير ملف القالب الرئيسي.

رد فعل: دوال مخصصة في القالب الفرعي.

إضافة منزلية
إضافة صغيرة مخصصة لوظيفة، مستقلة عن القالب.

مثال بسيط: مقتطف محزوم ليدوم.

ما ليس كذلك: وضع كل شيء في القالب مع خطر فقدانه عند التغيير.

رد فعل: يمكن أن يعيش كود العمل في إضافة.

في التطبيق — قراءة خطاف ووضعه

  1. ابحث في الوثائق عن خطاف مناسب لحاجة صغيرة.
  2. فعّل قالبًا فرعيًا وافتح ملف functions.php الخاص به.
  3. أضف مرشّحًا أو إجراءً بسيطًا، مُختبَرًا محليًا.
  4. تحقق من النتيجة، وعلّق على المقتطف، وانسخه احتياطيًا.
أول خطاف مفهوم وموضوع في المكان الصحيح، دون خطر على القالب الرئيسي.

نص جاهز — شرح العمل على المقاس (25 ثانية)

«لحاجة دقيقة جدًا، يمكنني إضافة جزء صغير من الكود في قالب فرعي، دون المساس بنواة WordPress. يُختبر منفصلًا ويُحفظ عند التحديثات. وفي كل ما عدا ذلك، نفضّل إضافة مجرّبة.»

أظهر الحذر: الإضافة أولًا، ثم الكود.

نموذج نسخ ولصق — بطاقة المقتطف

الحاجة: _______________
الإضافة الموجودة التي جُرّبت: نعم / لا
الخطاف المستخدم: إجراء / مرشّح
الملف: functions.php في القالب الفرعي
مُختبَر محليًا / على بيئة الاختبار: نعم / لا
تعليق داخل الكود: نعم / لا
نسخة احتياطية من المقتطف: نعم / لا

تعديل صغير

مرشّح موجّه في القالب الفرعي.

وظيفة عمل

إضافة منزلية صغيرة، مستقلة عن القالب.

تعلّم

اختبار الخطافات محليًا على موقع تجريبي.

فريق

إدارة إصدارات الكود وتوثيق كل مقتطف.

✓ ممارسات جيدة

  • ابحث عن إضافة قبل كتابة الكود.
  • مرّ دائمًا عبر القالب الفرعي.
  • اختبر محليًا أو على بيئة الاختبار.

✗ أخطاء شائعة

  • تعديل نواة WordPress.
  • لصق كود في القالب الرئيسي.
  • ترك مقتطف غير مُختبَر في الإنتاج.

النقاط الأساسية

  • توسّع الخطافات WordPress دون تعديل النواة.
  • الإجراء = تنفيذ؛ والمرشّح = تعديل بيانات.
  • يُوضع الكود في functions.php للقالب الفرعي.
  • نختبر محليًا ونوثّق.

تحدي 48 ساعة — طبّق غدًا

اعثر على خطاف بسيط في الوثائق، وأضفه في قالب فرعي، وتحقق من النتيجة محليًا. علّق على المقتطف. 30 دقيقة.

قائمة الخروج من القسم
  • أفرّق بين الإجراءات والمرشّحات.
  • أضع كودي في قالب فرعي.
  • أختبر مقتطفًا وأوثّقه.
تقييم ذاتي 1-5: هل أفهم مبدأ الخطاف؟هل كودي في المكان الصحيح؟

أسئلة شائعة

هل يجب تعلّم PHP للتطوير على WordPress؟

نعم، PHP هي لغة WordPress، مع HTML وCSS وJavaScript حسب الحاجة. يمكن مع ذلك البدء بخطافات صغيرة دون خبرة، ثم التعمق إذا جذبك التطوير.

إضافة موجودة أم كود على المقاس؟

ابحث دائمًا عن إضافة مجرّبة أولًا: صيانة أقل وتجربة على مواقع كثيرة. يبرّر الكود المخصص نفسه عندما لا تلبي أي إضافة الحاجة أو لحاجة دقيقة جدًا، بمقتطف موجّه بدلًا من إضافة ضخمة.

أين أختبر كودي دون خطر؟

محليًا أو على موقع اختبار، مع قالب فرعي. لا مباشرة في الإنتاج على موقع العميل. انسخ احتياطيًا قبل ذلك واحتفظ بأثر للمقتطف.

تحقّق من فهمك

ما هو الخطاف في WordPress؟

موارد إضافية (اختياري، للتعمّق أكثر)

اختبار المستوى 5أسئلة جديدة وأصعب للتحقق من مكتسباتك