مدخل إلى برمجة إضافات ووردبريس (WordPress Plugins)
مقدمة
يُعتبر ووردبريس (WordPress) واحدًا من أشهر أنظمة إدارة المحتوى (CMS) في العالم، حيث يتيح للمستخدمين إنشاء مواقع إلكترونية قوية ومرنة بسهولة، سواء كانت مدونات شخصية أو متاجر إلكترونية أو مواقع إخبارية أو منصات تعليمية. من بين أبرز أسباب شهرة ووردبريس هو قابليته العالية للتخصيص، والتي تتحقق بشكل رئيسي من خلال الإضافات (Plugins).
تلعب الإضافات دورًا أساسيًا في توسيع وظائف ووردبريس، فهي تمكّن المطورين من إضافة ميزات جديدة دون الحاجة لتعديل نواة النظام الأساسية. هذا المقال يقدم مدخلًا تفصيليًا وشاملًا إلى برمجة إضافات ووردبريس، ويغطي الجوانب التقنية الأساسية، من إعداد بيئة التطوير إلى كتابة الأكواد وتنظيم هيكلية الملفات، وصولاً إلى أفضل الممارسات.
المفاهيم الأساسية حول الإضافات
ما هي الإضافة في ووردبريس؟
الإضافة (Plugin) في ووردبريس هي ملف أو مجموعة من الملفات البرمجية بلغة PHP، يمكن إضافتها إلى نظام ووردبريس لتوسيع أو تعديل وظائفه. قد تكون الإضافة بسيطة وتضيف زرًا إلى لوحة التحكم، أو معقدة مثل إنشاء نظام حجز أو بوابة دفع إلكتروني.
لماذا نستخدم الإضافات؟
الإضافات توفر طريقة آمنة وغير تدخلية لتوسيع وظائف النظام، دون المساس بنواة ووردبريس. أي تغيير يتم عبر الإضافة يمكن إزالته بسهولة لاحقًا دون أن يؤثر على الموقع ككل.
إعداد بيئة العمل
المتطلبات الأساسية
-
خادم محلي مثل XAMPP أو MAMP.
-
نظام ووردبريس مثبت محليًا.
-
محرر نصوص مثل Visual Studio Code.
-
معرفة أساسية بلغة PHP وHTML وCSS وJavaScript.
إنشاء مجلد الإضافة
يجب إنشاء مجلد خاص للإضافة داخل المسار التالي:
bash/wp-content/plugins/اسم-الإضافة
داخل هذا المجلد، يجب إنشاء ملف PHP رئيسي يحمل اسم الإضافة أو اسمًا يدل عليها، مثل:
perlmy-first-plugin.php
الهيكل الأساسي لملف الإضافة
فيما يلي مثال على الهيكل الأساسي لملف الإضافة:
php
/*
Plugin Name: My First Plugin
Plugin URI: https://example.com/
Description: هذه أول إضافة لي على ووردبريس.
Version: 1.0
Author: اسمك
Author URI: https://example.com/
License: GPL2
*/
هذا الترويس ضروري لتعرف ووردبريس على الإضافة وعرضها في لوحة التحكم.
تشغيل الإضافة
بعد حفظ ملف الإضافة داخل مجلد الإضافات، يمكن تفعيلها من خلال لوحة التحكم:
-
الذهاب إلى لوحة التحكم > إضافات.
-
تفعيل الإضافة من القائمة.
ربط الكود بنظام ووردبريس عبر “Hooks”
ما هي الـ Hooks؟
توفر ووردبريس آلية تدعى “Hooks”، وهي نقطة ربط تتيح لك تنفيذ كود معين عند حدوث حدث معين في النظام. تنقسم إلى نوعين:
-
Action Hooks: لتنفيذ كود معين.
-
Filter Hooks: لتعديل بيانات قبل عرضها أو معالجتها.
مثال على Action Hook
phpfunction say_hello() {
echo "مرحبا بك في موقعي!
";
}
add_action('wp_footer', 'say_hello');
هذا المثال يضيف رسالة إلى تذييل الموقع باستخدام الـ wp_footer.
إضافة صفحة إعدادات إلى لوحة التحكم
لإضافة صفحة إعدادات خاصة بالإضافة داخل لوحة التحكم:
phpfunction my_plugin_menu() {
add_menu_page(
'إعدادات الإضافة',
'الإضافة الخاصة بي',
'manage_options',
'my-plugin-settings',
'my_plugin_settings_page',
'dashicons-admin-generic',
100
);
}
add_action('admin_menu', 'my_plugin_menu');
function my_plugin_settings_page() {
echo 'إعدادات الإضافة
هنا يمكن وضع الإعدادات.
';
}
تنظيم ملفات الإضافة
يفضل تنظيم الإضافة في مجلدات وملفات منفصلة للحصول على كود نظيف وقابل للصيانة:
bash/my-plugin/ │ ├── my-plugin.php ├── /includes/ │ └── functions.php ├── /admin/ │ └── settings-page.php ├── /assets/ │ ├── style.css │ └── script.js
التعامل مع قواعد البيانات
إنشاء جدول جديد
phpfunction my_plugin_create_table() {
global $wpdb;
$table_name = $wpdb->prefix . 'my_plugin_table';
$charset_collate = $wpdb->get_charset_collate();
$sql = "CREATE TABLE $table_name (
id mediumint(9) NOT NULL AUTO_INCREMENT,
name tinytext NOT NULL,
created datetime DEFAULT CURRENT_TIMESTAMP NOT NULL,
PRIMARY KEY (id)
) $charset_collate;";
require_once(ABSPATH . 'wp-admin/includes/upgrade.php');
dbDelta($sql);
}
register_activation_hook(__FILE__, 'my_plugin_create_table');
استخدام الجافاسكريبت وCSS في الإضافة
لربط ملفات الجافاسكريبت وCSS:
phpfunction my_plugin_enqueue_scripts() {
wp_enqueue_style('my-plugin-style', plugin_dir_url(__FILE__) . 'assets/style.css');
wp_enqueue_script('my-plugin-script', plugin_dir_url(__FILE__) . 'assets/script.js', array('jquery'), false, true);
}
add_action('wp_enqueue_scripts', 'my_plugin_enqueue_scripts');
الحماية والأمان
عند تطوير الإضافات، من الضروري مراعاة الجوانب الأمنية:
-
تحقق دائمًا من صلاحيات المستخدم باستخدام
current_user_can(). -
نظف مدخلات المستخدم باستخدام
sanitize_*. -
استخدم
nonceلحماية النماذج.
الترجمة وتعدد اللغات
يمكن جعل الإضافة قابلة للترجمة باستخدام دوال __() و _e():
php_e('مرحبًا بك في الإضافة', 'my-plugin');
يجب تضمين ملف POT للترجمة باستخدام أدوات مثل Poedit.
توزيع الإضافة
يمكن رفع الإضافة إلى مستودع ووردبريس الرسمي عبر:
-
إنشاء حساب على WordPress.org.
-
تقديم الطلب لرفع الإضافة.
-
استخدام SVN لنشرها على المستودع.
مثال تطبيقي: إضافة عداد زيارات للمنشورات
الكود الأساسي
phpfunction increase_post_views($postID) {
$count_key = 'post_views_count';
$count = get_post_meta($postID, $count_key, true);
if($count == '') {
$count = 0;
delete_post_meta($postID, $count_key);
add_post_meta($postID, $count_key, '1');
} else {
$count++;
update_post_meta($postID, $count_key, $count);
}
}
function track_post_views($post_id) {
if(!is_single()) return;
if(empty($post_id)) {
global $post;
$post_id = $post->ID;
}
increase_post_views($post_id);
}
add_action('wp_head', 'track_post_views');
عرض العداد
phpfunction get_post_views($postID){
$count_key = 'post_views_count';
$count = get_post_meta($postID, $count_key, true);
return $count;
}
جدول مقارنة بين Actions وFilters في ووردبريس
| العنصر | Action Hooks | Filter Hooks |
|---|---|---|
| الوظيفة | تنفيذ وظيفة إضافية | تعديل البيانات أثناء التحميل |
| قيمة الإرجاع | لا ترجع قيمة | يجب أن ترجع قيمة معدلة |
| التوقيت | عند حدوث حدث | أثناء معالجة البيانات |
| مثال | add_action('wp_footer', ...) |
add_filter('the_content', ...) |
أفضل الممارسات في تطوير الإضافات
-
اكتب كودًا نظيفًا ومنظمًا مع استخدام المسافات الفاصلة وتعليقات توضيحية.
-
استخدم برمجيات التحكم بالإصدار مثل Git.
-
التزم بقواعد التسمية الموحدة للأسماء.
-
اختبر الإضافة جيدًا قبل النشر باستخدام بيئة اختبارية.
-
تجنب التداخل مع إضافات أو قوالب أخرى عبر استخدام نطاق فريد (
prefix) للأسماء.
الخاتمة
برمجة إضافات ووردبريس هي مجال حيوي ومفتوح على إمكانيات واسعة لتطوير حلول مرنة وفعالة ضمن بيئة مرنة وقابلة للتخصيص. بإمكان المطور أن يبدأ من إضافات بسيطة جدًا ويصل إلى إنشاء أنظمة كاملة مدمجة داخل مواقع ووردبريس، دون الحاجة لإعادة ابتكار العجلة. الفهم الجيد لهيكلية ووردبريس وآلية عمل الإضافات يمكّن المطور من تحسين تجربة المستخدم وإضافة قيمة حقيقية للمواقع التي يقوم بتطويرها.
المراجع:
-
WordPress Developer Handbook: https://developer.wordpress.org/plugins/
-
WPBeginner: https://www.wpbeginner.com/

