مُقدّمة إلى برمجة إضافات Wordpress

مُقدّمة إلى برمجة إضافات Wordpress


من أهم أسباب انتشار ووردبريس وسيطرته على سوق أنظمة إدارة المحتوى هو الكم الهائل من إضافاته المجانية والمدفوعة والتي تقدم العديد من الخصائص والمميزات والتحسينات الإضافية التي لا تتوفر بصورة افتراضية في قلب ووردبريس WordPress Core .
في هذا المقال سنتعرف سوّيًا على أساسيات 
إنشاء إضافة لووردبريس لكن قبل الدخول في لب الموضوع دعنا نجب على سؤال مُهمّ وكذلك تعريف إضافات ووردبريس.

لماذا ننشئ إضافات ووردبريس

هنالك قاعدة مهمة في تطوير ووردبريس، وهي: إياك أن تلمس الشيفرات Codes الأساسية لووردبريس أي لا تُعدّل على قلب ووردبريس WordPress Core وذلك لأنه عند التحديث سيتمّ استبدال بعض أو كل ملفات ووردبريس الأساسية، وبالتّالي ستفقد التعديلات التي قمت بها، ولهذا السبب نلجأ إلى تطوير إضافات عند الحاجة لإضافة التحسينات والخصائص الجديدة على النّظام.
إضافة ووردبريس عبارة عن دالة أو مجموعة دوال (حزمة شيفرات code package) مكتوبة بلغة php تقوم بإضافة بعض الخصائص لنظام إدارة المُحتوى. وتندمج شيفرات الإضافة معه من خلال واجهة برمجية API يوفرها له.
بالإضافة لملفات
php يمكن أن تحتوي الإضافة على ملفات أخرى مثل ملفات JavaScript , CSS وبعض الصور.

إنشاء إضافة ووردبريس

هذه بعض الخطوات المهمة عند إنشاء أي إضافة ووردبريس وبعض الأمور التي يجب مراعاتها.

اختيار اسم الإضافة

في البدء عليك أن تقوم باختيار اسم فريد للإضافة التي تود إنشائها بحيث لا يكون الاسم مستخدما من قبل من إحدى إضافات ووردبريس حتى لا يحدث تعارض بين الإضافات مستقبلا.

إنشاء مجلد الإضافة

بعد اختيار اسم الإضافة تقوم بإنشاء مجلد لها بالاسم الذي اخترناه ويكون هذا المجلد داخل مجلد  plugins الخاص بالإضافات والموجود داخل مجلد wp-content  كما موضح بالصّورة.
يمكنك إنشاء ملف
php بنفس الاسم بدلًا عن إنشاء مُجلّد كامل لكن يُفضّل أن تنشئ مُجلّدًا خاصًّا حتى يستوعب بقية ملفات الإضافة، ما لم تكن الإضافة تحتوي على ملف php واحد فقط.
plugin-folder.thumb.png.00ecfbab5aac676c

إنشاء الملف الأساسي للإضافة

بعد إنشائك للمُجلّد في الخطوة أعلاه عليك أن تقوم بإنشاء ملف php له نفس اسم المجلد السابق، وهذا الملف هو الملف الأساسي للإضافة والذي سيستخدمه ووردبريس للتّعرف على بعض الأمور المُتعلّقة بالإضافة مثل اسمها واسم المُبرمج ورخصة الإضافة وغيرها، وهذا يتم من خلال استخدام ترويسة للملف الأساسي للإضافة وهذه هي الصّيغة العامة لها:
    <?php
    /**
     * Plugin Name: هنا تكتب اسم الإضافة والذي يجب أن يكون فريدًا
     * Plugin URI: هنا تكتب رابط موقع الإضافة
     * Description: هنا نبذة مختصرة عن الإضافة
     * Version: رقم نسخة الإضافة، مثلا 1.0.0
     * Author: اسم مطور الإضافة
     * Author URI: رابط موقع مطور الإضافة
     * License: اسم رخصة الإضافة
     */
السّطر الإجباري هو سطر اسم الإضافة فقط، ويتمّ استخدام بقية السطور (في حال ورودها) في إنشاء معلومات الإضافة التي تظهر في لوحة تحكم الإضافات عند استعراض الإضافة.

برمجة  الإضافة

قبل أن تبدأ في برمجة الإضافة تحتاج لمعرفة بعض الأمور العامة في برمجة ووردبريس بالإضافة لبعض التسهيلات التي يقدمها ووردبريس للمبرمجين مثل الواجهات البرمجية الجاهزة WordPress API's.

الخطافات في ووردبريس WordPress Hooks ( الدخول الى عمق ووردبريس)

من أهم المفاهيم في ووردبريس مفهوم الخطافات hooks والتي تنقسم إلى قسمين: الأحداث actions والمُرشّحات filters.

1- الإجراءات في ووردبريس WordPress Actions

فلنفترض أنه لدينا دالة معينة نريد أن يتم تنفيذها في لحظة معينة أثناء دورة حياة ووردبريس أو عند حدوث حدث معين، كيف يمكننا إنجاز هذا الأمر؟
أحد الخيارات أن نقوم بمناداة هذه الدالة بالطريقة العادية في المكان الذي نريدها أن تُنفّذ فيه، لكن هذا الأمر يتطلّب التّعديل على ملفات ووردبريس الأساسية. لك القاعدة التي ذكرناها مسبقا: 
إياك أن تلمس الشيفرات الأساسية لووردبريس تمنعنا من القيام بذلك.
الحل الآخر هو أن نستخدم  الإجراءات
actions وهي عبارة عن آليّة رائعة يوفرها ووردبريس تمكّنك من إضافة الدّوال الخاصّة بك لتُنفّذ في وقت معين أثناء تنفيذ الشيفرات الخاصة بووردبريس
إذًا، يمكننا أن نعرف  الإجراءات بأنها 
طريقة تمكننا من إخبار ووردبريس بتنفيذ دالة معينة عند حصول حدث معين
وبهذه الطريقة نستطيع الدخول إلى عمق ووردبريس من دون التعديل المباشر على ملفاته الأساسية
Core files.
يتم هذا كله من خلال ربط الدّوال التي تريدها مع الأحداث الجاهزة التي يوفرها ووردبريس والتي يقوم بتنفيذها أثناء دورة حياته وهذا ما يجعلك قادرا على تنفيذ الدّوال الخاصة بك في أي مكان تريده تقريبا. يمكنك الإطلاع على الأحداث التي يوفرها ووردبريس من خلال التويق الرسمى للاحداث 
إذا كنّا نريد مثلا تنفيذ الدّالة  my_function عندما ينفذ ووردبريس الحدث  my_action   علينا ببساطة أن نخبره بذلك من خلال إضافة هذه الدالة إلى هذا الحدث. ويتم ذلك من خلال الدالة add_actions بالطريقة التالية
       add_action('my_action', 'my_function');

1-1مثال للإجراءات في ووردبريس

فلنأخذ هذا المثال الذي يقوم بإرسال بريد إلى مدير الموقع (الدالة المراد تنفيذها) كلما نشر مقالًا جديدًا (الحدث الذي تنفذ عنده الدالة)
           add_action('publish_post', 'email_admin');
        function email_admin(){
                // هنا يتم إرسال البريد الإلكتروني إلى مدير الموقع
        }       

2-المرشحات في ووردبريس WordPress Filters

المُرشّحات هي النوع الثاني من الخطّافات التي يوفرها ووردبريس وهي مختصّة أكثر بالبيانات حيث أنها تتيح لنا إمكانية التعديل على قيم المتغيرات (اسم المقال مثلا)  قبل حفظها في قاعدة البيانات أو قبل عرضها للمستخدم، وكما هو ظاهر من اسمها فهي تتيح لنا إمكانية ترشيح البيانات، بمعنى إدخالها إلى filter مُعيّن يُعدّل عليها قبل إخراجها من الجانب الآخر من هذا المُرشّح .
بطبيعة الأمر وكما هو الحال بالنّسبة للأحداث فإن ووردبريس يُوفّر لك إمكانية إدخال أغلب مُتغيّراته في المُرشّحات التي تريدها من خلال اسم المتغير، ويمكنك الاطّلاع على المُتغيّرات التي يمكنك تمريرها عبر المُرشّحات بزيارة  التوثيق الرسمى للمرشحات 
يتم إضافة فلتر معين my_filter  لبيانات معينة my_data  من خلال الدّالة add_filter بالطريقة التالية
    add_filter( 'my_data', 'my_filter' );
حيث أن my_filter هي الدّالة التي ستقوم بالتعديل على البيانات ويتم تمرير البيانات لها من قبل ووردبريس أي أنها يجب أن تستقبل my_data كمعامل parameterr.
2-1مثال للمرشحات في ووردبريس
هذا المثال يقوم بتعديل محتوى المقال 
the_content حيث يقوم بإضافة التّوقيع لمُحتويات كل مقال في الموقع
    add_filter ( 'the_content', 'add_signiture' );
    function add_signiture($the_content){
    // هنا نقوم بإضافة الشيفرات التي تضيف التّوقيع لمحتويات المقال
        return $the_content;   // بعد ذلك تقوم الدّالة بإرجاع القيم الجديدة لمحتويات المقال
    }
هذه نظرة سريعة فقط على الخطافات في ووردبريس ولكن ما زال هنالك العديد من الأشياء المتعلقة بهذه الآلية الرّائعة التي يوفرها ووردبريس منها:
  • إمكانية إضافة الـhooks الخاصة بك.
  • تعديل أولوية تنفيذ الدّوال التابعة لنفس الـhook.
  • ويمكنك التعرف على المزيد حول موضوع الخطافات في التّوثيق الرسمي لPlugin API

وسوم القالب Template Tags

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

حفظ بيانات/ الإضافة في قاعدة البيانات

الكثير من إضافات ووردبريس إن لم يكن معظمها تحتاج لاستقبال بعض البيانات من مدير الموقع (خيارات الإضافة مثلا) وحفظها في قاعدة البيانات لاسترجاعها واستخدامها لاحقا، ولهذا السبب يتيح لنا ووردبريس عدّة طرق لحفظ البيانات في قاعدة بيانات الموقع واختيار الطريقة المناسبة يعتمد على نوع البيانات المراد حفظها. هذه الطرق هي:

1- استخدام آلية "الخيارات options" التي يوفرها ووردبريس

 وهذه الطريقة مناسبة في حالة كون البيانات المراد حفظها صغيرة نسبيا ولا تتغير كثيرا مثل البيانات التي تتوقع من مدير الموقع إدخالها بعد تنصيب الإضافة مباشرة (خيارات الإضافة) والتي نادرا ما تتغير. في هذه الطريقة يتم حفظ بيانات الإضافة في جدول wp_options والذي يستخدمه ووردبريس لحفظ خياراته الخاصة.

2-استخدام البيانات الوصفية الخاصة بالمقالات Post Meta

 وهذه الطريقة مناسبة في حالة البيانات المتعلقة بمقال أو صفحة مفردة (مثلا مزاج الكاتب عند كتابة المقال)

3-استخدام الفئات المخصّصة

 وهذه مناسبة لتصنيف البيانات مثل تصنيف المقالات أو المستخدمين أو التعليقات.

4- إنشاء جدول جديد في قاعدة البيانات

هذه الطريقة مناسبة مع البيانات التي لا يصلح معها أي نوع من الأنواع الثلاثة السابقة والتي تتوقع أن تتزايد مع الزمن والتي لا يمكن حصرها في اسم محدد.

الاستفادة من الواجهات البرمجية API's التي يوفرها ووردبريس

يحتوي ووردبريس على مجموعة ضخمة من الدّوال والأصناف Classes المفيدة التي تمثل بوّابات تربطك بقلب ووردبريس WordPress Core بالإضافة إلى توفيرها لدوال مفيدة في كثيرا من الأمور البرمجية العامة في مجال الويب، وهذه أمثلة لبعض الواجهات البرمجية التي يوفرها ووربريس
  • Plugin API: تتيح لك الدّوال المستخدمة في الاستفادة من ميكانيكية الخطافات وكذلك الدّوال المساعدة لإنشاء الخطافات الخاصة بك.
  • Database API : واجهة برمجية تسهل التعامل مع قاعدة بيانات ووردبريس.
  • Rewrite API: تتيح لك إمكانية تغير صيغة روابط المقالات والموقع عموما والتحكم فيها.
  • Filesystem API: للتعامل مع نظام الملفات في نظام التشغيل.
وغيرها الكثير من الواجهات البرمجية  يمنك الاطلاع عليها من هنا  

أمور عامة عليك مراعاتها عند برمجة الإضافة

1- الاهتمام بأمن الشيفرة Code Security

كما هو الحال عند برمجة أي سكربت من خلال لغة php عليك مراعاة أن يكون خاليا من الثغرات التي قد تعرض الموقع لخطر الاختراق، نفس الأمر ينطبق على إضافات ووردبريس فعليك الاهتمام بإغلاق الثّغرات المعروفة وحماية المدخلات وكذلك ملفات الإضافة بمنع الوصول المباشر لها عن
طريق استخدام الشيفرة التالية مثلا
  defined( 'ABSPATH' ) or die( 'ممنوع الوصول المباشر' );
هنالك أشياء أخرى يجب مراعاتها خصوصا إذا أردت نشر إضافتك في مستودع إضافات ووردبريس، بعض هذه الأمور إجباري وتحتاج لعمله حتى يتم قبول إضافتك ونشرها في المستودع، من هذه الأمور:

2- ملف اقرأني Readme File

هو ملف تقوم بتضمينه في مجلد الإضافة باسم readme.txt  ويستخدمه مستودع الإضافات لأخذ بعض المعلومات بالإضافة للمعلومات التي تظهر في صفحة الإضافة في المستودع 

3- جعل الإضافة قابلة للترجمة

من الأمور الأخرى التي عليك مراعاتها هو جعل الإضافة قابلة للترجمة  لعدة لغات localized حيث يمكنك استخدام  gettex   التي يوفرها ووردبريس والتي تجعل من عملية جعل الكلمات قابلة للترجمة أمر سهل، وبعد ذلك يتم إرفاق ملفات اللغة مع الإضافة

4- استخدام معايير تطوير وودبريس

معايير التّطويرCoding Standard هي بعض القواعد العامة التي عليك مراعاتها عند كتابة الشيفرة لتجنب أخطاء التشفير Coding وتسهيل عملية كتابة الشيفرات ومراجعتها وقراءتها خصوصا في حالة تعاون أكثر من شخص في برمجة شيء ما.
لووردبريس قواعده الخاصة أيضا والتي يحاول من خلالها المحافظة على قواعد ثابتة في شيفرات ووردبريس وكذلك شيفرات الإضافات والقوالب لذلك يفضل أن تلتزم بهذه القواعد عند كتابة شيفرات الإضافة الخاصة بك.  يمكنك قراءة المزيد من هنا  

5- تحديث الإضافة

يستخدم  مستودع إضافات ووردبريس نظام Subversion لتحديث ولمعرفة آلية القيام بذلك، زر  هذه الصفحة  
كانت هذه كانت مقدمة سريعة ونبذة مختصرة حاولنا أن نجعلها كمدخل لبرمجة إضافات ووردبريس وما زال هنالك المزيد  لمعرفته عن  برمجة إضافات ووردبريس في مقالات قادمة.



تعليقات

المشاركات الشائعة من هذه المدونة

شائعات: هواوي Mate 10 قادم في أكتوبر وبشاشة ممتدة الحواف

تسريب عن اول صورة لجوال سامسونج Galaxy Note 8

نوع جديد من برمجيات خبيثة تصيب هواتف الأندرويد