مُقدّمة إلى برمجة إضافات Wordpress
مُقدّمة إلى برمجة إضافات Wordpress
من
أهم أسباب انتشار ووردبريس وسيطرته على سوق أنظمة إدارة المحتوى هو الكم الهائل من
إضافاته المجانية والمدفوعة والتي تقدم العديد من الخصائص والمميزات والتحسينات الإضافية التي لا تتوفر
بصورة افتراضية في قلب ووردبريس WordPress Core .
في هذا المقال سنتعرف سوّيًا على أساسيات إنشاء إضافة لووردبريس لكن قبل الدخول في لب الموضوع دعنا نجب على سؤال مُهمّ وكذلك تعريف إضافات ووردبريس.
في هذا المقال سنتعرف سوّيًا على أساسيات إنشاء إضافة لووردبريس لكن قبل الدخول في لب الموضوع دعنا نجب على سؤال مُهمّ وكذلك تعريف إضافات ووردبريس.
لماذا ننشئ
إضافات ووردبريس
هنالك قاعدة مهمة
في تطوير ووردبريس، وهي: إياك أن تلمس الشيفرات Codes
الأساسية لووردبريس أي
لا تُعدّل على قلب ووردبريس WordPress Core
وذلك لأنه عند التحديث سيتمّ استبدال بعض أو كل ملفات ووردبريس الأساسية،
وبالتّالي ستفقد التعديلات التي قمت بها، ولهذا السبب نلجأ إلى تطوير إضافات عند
الحاجة لإضافة التحسينات والخصائص الجديدة على النّظام.
تعريف إضافاتووردبريس
إضافة ووردبريس
عبارة عن دالة أو مجموعة دوال (حزمة شيفرات code
package) مكتوبة بلغة php تقوم
بإضافة بعض الخصائص لنظام إدارة المُحتوى. وتندمج شيفرات الإضافة معه من خلال
واجهة برمجية API يوفرها له.
بالإضافة لملفات php يمكن أن تحتوي الإضافة على ملفات أخرى مثل ملفات JavaScript , CSS وبعض الصور.
بالإضافة لملفات php يمكن أن تحتوي الإضافة على ملفات أخرى مثل ملفات JavaScript , CSS وبعض الصور.
إنشاء إضافة
ووردبريس
هذه بعض الخطوات
المهمة عند إنشاء أي إضافة ووردبريس وبعض الأمور التي يجب مراعاتها.
اختيار اسم الإضافة
في البدء عليك أن
تقوم باختيار اسم فريد للإضافة التي تود إنشائها بحيث لا يكون الاسم مستخدما من
قبل من إحدى إضافات ووردبريس حتى لا يحدث تعارض بين الإضافات مستقبلا.
إنشاء مجلد الإضافة
بعد اختيار اسم
الإضافة تقوم بإنشاء مجلد لها بالاسم الذي اخترناه ويكون هذا المجلد داخل
مجلد plugins الخاص
بالإضافات والموجود داخل مجلد wp-content كما
موضح بالصّورة.
يمكنك إنشاء ملف php بنفس الاسم بدلًا عن إنشاء مُجلّد كامل لكن يُفضّل أن تنشئ مُجلّدًا خاصًّا حتى يستوعب بقية ملفات الإضافة، ما لم تكن الإضافة تحتوي على ملف php واحد فقط.
يمكنك إنشاء ملف php بنفس الاسم بدلًا عن إنشاء مُجلّد كامل لكن يُفضّل أن تنشئ مُجلّدًا خاصًّا حتى يستوعب بقية ملفات الإضافة، ما لم تكن الإضافة تحتوي على ملف php واحد فقط.
إنشاء الملف
الأساسي للإضافة
بعد إنشائك
للمُجلّد في الخطوة أعلاه عليك أن تقوم بإنشاء ملف 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.
أحد الخيارات أن نقوم بمناداة هذه الدالة بالطريقة العادية في المكان الذي نريدها أن تُنفّذ فيه، لكن هذا الأمر يتطلّب التّعديل على ملفات ووردبريس الأساسية. لك القاعدة التي ذكرناها مسبقا: إياك أن تلمس الشيفرات الأساسية لووردبريس تمنعنا من القيام بذلك.
الحل الآخر هو أن نستخدم الإجراءات 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 حيث يقوم بإضافة التّوقيع لمُحتويات كل مقال في الموقع
هذا المثال يقوم بتعديل محتوى المقال 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- تحديث الإضافة
كانت هذه كانت مقدمة سريعة
ونبذة مختصرة حاولنا أن نجعلها كمدخل لبرمجة إضافات ووردبريس وما زال هنالك
المزيد لمعرفته عن برمجة إضافات ووردبريس في مقالات قادمة.
تعليقات
إرسال تعليق