لو ناوي تبدأ في البرمجة الخاصة مع ووردبريس، أول حاجة لازم تبقى فاهم كويس هو إزاي ووردبريس شغال من جوه.

في الموضوع ده، هنتكلم بشكل عملي عن بنية ووردبريس من الناحية البرمجية، وهنوضح الفرق بين الثيمات والإضافات، وإزاي تستخدم الـHooks، وهندي لمحة سريعة عن REST API واللي بتفتح لك عالم كامل من الإمكانيات.

الأول: يعني إيه Theme ويعني إيه Plugin؟

الناس اللي بتبدأ دايمًا بتتلخبط بين الملف اللي اسمه functions.php جوه الثيم، وبين إنك تكتب كود في إضافة مخصصة.

Theme : بيتحكم في شكل الموقع، التنسيقات، القوالب

plugin : بيضيف أو يعدل وظيفة بدون علاقة مباشرة بالشكل

- لو بتعدل على شكل البوستات أو الهيدر – اشتغل جوه الثيم

- لو بتضيف ميزة زي نظام حجز أو تكامل مع API – اعملها في بلجن

ودايمًا افصل الوظيفة عن الشكل. عشان لو غيرت الثيم، الموقع ميبوظش!

الـ Hooks (Actions و Filters)

لو ووردبريس هو المسرح، الـ Hooks هي الستيج اللي تقدر تطلع عليه وتعدل أي حاجة بتحصل جوه الكود من غير ما تغير في الملفات الأصلية.

أنواع الـ Hooks:

Actions

  • بتسمح لك تضيف كود في نقطة معينة أثناء تنفيذ الكود.
  • مثال: عايز تبعت إيميل أول ما ييجي تعليق جديد؟ استخدم add_action('comment_post', 'send_custom_email');

Filters

  • بتسمحلك تعدل على بيانات موجودة قبل ما تتعرض.
  • مثال: عايز تغير عنوان المقال في الـ frontend؟ استخدم add_filter('the_title', 'change_my_title');

مثال

// Action: أضف كود عند تسجيل مستخدم جديد
add_action('user_register', 'my_custom_user_function');
function my_custom_user_function($user_id) {
    // كودك هنا
}


// Filter: غيّر عنوان المقال
add_filter('the_title', 'change_my_title');
function change_my_title($title) {
    return '🔥 ' . $title;
}

إمتى تستخدم Hook؟

  • بدل ما تعدل في ملفات بلجن أو ثيم وتبوظ التحديثات.
  • لما تحب تضيف كود خفيف مخصص في الإضافة بتاعتك أو ملف functions.
  • لما تحتاج تتحكم في عملية موجودة بالفعل في ووردبريس.

لمحة سريعة عن REST API

الـ REST API في ووردبريس هي واجهة برمجية (API) بتخليك تبعت وتستقبل بيانات من الموقع بصيغة JSON.

يعني تقدر:

  • تعرض البوستات في تطبيق موبايل.
  • تبني لوحة تحكم مخصصة بالكامل.
  • تربط موقع ووردبريس مع أي نظام خارجي (زي CRM أو ERP).

مثال بسيط:

لو عندك موقع على example.com، تقدر تجيب البوستات كده:

https://example.com/wp-json/wp/v2/posts

وتاخد النتيجة بصيغة JSON تستخدمها زي ما تحب.

لو عايز تبعت بيانات؟

تقدر تعمل POST request مع توثيق JWT أو OAuth.

لو عندك فكرة Plugin نفسك تبنيها أو سؤال عن Hook معين، اكتبلي في التعليقات 👇