أساسيات تطوير إضافات ووردبريس وإعداد البيئة المناسبة للتطوير
إن إضافات ووردبريس (WordPress Plugins) هي حزم كود مستقلة تُستخدم لتوسيع الميزات الأساسية لنظام ووردبريس. للبدء في تطوير هذه الإضافات، من الضروري أولاً إنشاء بيئة تطوير محلية متخصصة. عادةً ما تتضمن هذه البيئة برامج لتشغيل خوادم محلية (مثل XAMPP أو MAMP أو Local by Flywheel)، برنامج تحرير كود (مثل VS Code أو PhpStorm)، بالإضافة إلى نسخة من ووردبريس مثبتة لأغراض الاختبار. استخدام البيئة المحلية يساعد على تجنب المخاطر التي قد تنشأ أثناء إجراء التطوير التجريبي على المواقع الإلكترونية الموجودة على الإنترنت.
بعد الاستعداد التام، يصبح من السهل جدًا إنشاء أول إضافة (plugin). ما عليك سوى القيام بذلك داخل نظام ووردبريس (WordPress).wp-content/pluginsقم بإنشاء مجلد جديد داخل المجلد الحالي، على سبيل المثال:my-first-pluginثم قم بإنشاء ملف PHP رئيسي داخل هذا المجلد؛ عادةً ما يكون اسم الملف مطابقًا لاسم المجلد نفسه. يجب أن يحتوي بداية هذا الملف على تعليقات رأس الإضافة (plugin header comments) القياسية، وهي ضرورية لكي يتعرف ووردبريس على الإضافة.
الهيكل الأساسي الضروري لملف رئيسي الإضافة (Plugin Main File)
الملف الرئيسي للإضافة (plugin) يمثل نقطة الدخول إلى وظائف الإضافة نفسها، ويحتوي الكتلة الخاصة بالتعليقات في بداية هذا الملف على مجموعة من البيانات الوصفية (metadata).Plugin Nameهذا هو الحقل الوحيد الضروري، وسيظهر في قائمة الإضافات في واجهة خلفية ووردبريس. يمكن أن تحتوي إضافة بسيطة جدًا على هذه المعلومات الأساسية فقط، دون أي كود يتم تنفيذه فعليًا.
القراءة الموصى بها دليل شامل لتطوير إضافات ووردبريس: من المبادئ الأساسية إلى التطبيقات العملية المتقدمة。
فيما يلي مثال على كود ملف إضافة (plugin) بسيط للغاية:
<?php
/**
* Plugin Name: 我的第一个插件
* Description: 这是一个用于学习的简单WordPress插件。
* Version: 1.0.0
* Author: 你的名字
* License: GPL v2 or later
* Text Domain: my-first-plugin
*/ بعد حفظ الكود المذكور أعلاه، قم بتسجيل الدخول إلى صفحة “الإضافات” (Plugins) في واجهة ووردبريس الخلفية، وستتمكن من رؤية الإضافة الجديدة وتفعيلها. على الرغم من أنها لن تقوم بأي وظيفة في الوقت الحالي، إلا أن هذا يمثل بداية العملية التطويرية الرسمية.
الآلية الأساسية: خطافات الأفعال (Action Hooks) والمرشحات (Filters)
الفلسفة الأساسية لتطوير إضافات ووردبريس (WordPress Plugins) تكمن في مفهوم “الخطافات” (Hooks)، والتي تسمح لك بإدراج كودك في نقاط معينة من تدفق عمل ووردبريس أو على بيانات محددة. تنقسم الخطافات بشكل رئيسي إلى فئتين: الإجراءات (Actions) والمرشحات (Filters).
تُستخدم “خطافات الإجراءات” (Action Hooks) لتنفيذ الدوال المخصصة الخاصة بك عند حدوث أحداث معينة، مثل بعد نشر مقالة أو عند تحميل السكريبتات في الجزء العلوي من الصفحة، وما إلى ذلك. وهي مصممةadd_action()يمكن للدالة أن تقوم بتثبيت (ماين) دالتك على خطاف الإجراء (action hook) المحدد.
استخدم خطافات الحركة لإضافة وظائف.
على سبيل المثال، إذا كنت ترغب في إضافة نص مخصص إلى قسم القائمة السفلية (الفوتر) لموقع الويب الخاص بك، فيمكنك استخدام…wp_footerهذا “hook للإجراءات” (action hook): أولاً، يجب عليك كتابة دالة مخصصة في ملف الإضافة الرئيسي (main plugin file)، ثم استخدام هذه الدالة لتنفيذ الإجراءات المطلوبة.add_action()قم بربطه بالخطاف (hook).
القراءة الموصى بها تعلم تطوير الإضافات في ووردبريس: ابني أول إضافة مخصصة لك من الصفر إلى واحد.。
فيما يلي مثال على التنفيذ:
function myplugin_add_footer_text() {
echo '<p style="text-align:center;">شكرًا لاستخدامكم هذا الموقع!</p>';
}
add_action( 'wp_footer', 'myplugin_add_footer_text' ); عندما يصل ووردبريس إلى هذه الخطوة،wp_footerعند استخدام الخطاف (hook)، سيتم استدعاؤه تلقائيًا.myplugin_add_footer_text()الدالة… أظهر النص الذي قمت بتعريفه.
استخدم مُعلقات الفلتر لتعديل البيانات.
تُستخدم خطافات المرشحات (filter hooks) لتعديل البيانات. حيث يتم معالجة البيانات قبل استخدامها (مثل تخزينها في قاعدة البيانات أو عرضها في المتصفح). وهي مصممة لـ “تغيير شيء ما” في البيانات.add_filter()توجد دوال لتطبيق المرشحات (filters). على سبيل المثال، إذا أردت تعديل عناوين جميع المقالات، يمكنك إضافة بادئة قبل عرضها.
يوضح الكود أدناه كيفية إضافة بادئة “[موصى به]” إلى عناوين جميع المقالات:
function myplugin_modify_title( $title ) {
if ( is_single() ) {
$title = '[推荐] ' . $title;
}
return $title;
}
add_filter( 'the_title', 'myplugin_modify_title' ); إنشاء صفحة إدارة خلفية للإضافات (Plugins)
تحتاج العديد من الإضافات (البرامج الإضافية) إلى توفير خيارات تكوين للمستخدمين، وهو ما يتطلب إنشاء قوائم إدارية وصفحات إعدادات في واجهة ووردبريس الخلفية. يوفر ووردبريس مجموعة من الدوال (الوظائف البرمجية) لإضافة عناصر للقوائم الرئيسية أو
إضافة قائمة إدارة عليا
يمكنك استخدامه.add_menu_page()تقوم الدالة بإنشاء قائمة خلفية مستقلة للإضافة الخاصة بك. تحتاج هذه الدالة إلى عدة معاملات، وتشمل عنوان الصفحة، وعنوان القائمة، وصلاحيات المستخدم، واسم القائمة المستعار، ودالة التكليف لإنشاء محتوى الصفحة، و
القراءة الموصى بها دليل شامل لتعلم تطوير إضافات ووردبريس من الصفر。
هنا، دالة الاستدعاء العكسي (callback function).myplugin_settings_page_htmlمسؤول عن إنتاج محتوى صفحة الإعدادات بصيغة HTML.
عادةً ما يتم وضع كود إضافة القائمة في المكان المناسب داخل الكود الأساسي للتطبيق.admin_menuهذا الخيط البرمجي موجود على "خطاف الإجراء" (action hook) لضمان تنفيذه عند تهيئة واجهة الإدارة (management interface).
إنشاء صفحة إعدادات ونموذج أمان
في دالة الاستدعاء الخاصة بصفحة الإعدادات، يجب عليك عرض نموذج (form) ومعالجة عملية إرسال هذا النموذج. يوفر ووردبريس واجهة برمجة تطبيقات (API) للإعدادات لتسهيل هذه العملية، حيث يمكنها معالجة عمليات تسجيل الخيارات وحفظها وعرضها بشكل آمن. ولكن، من أجل فهم المبادئ الأساسية، يمكننا أولاً النظر إلى مثال بسيط لمعالجة إرسال النموذج يدويًا
يوضح الكود أدناه كيفية إنشاء صفحة إعدادات بسيطة تحتوي على مربعات إدخال، وكيفية حفظ البيانات بشكل آمن:
function myplugin_settings_page_html() {
// 检查用户权限
if ( ! current_user_can( 'manage_options' ) ) {
return;
}
// 处理表单提交
if ( isset( $_POST['myplugin_option'] ) ) {
// 安全检查:验证随机数
check_admin_referer( 'myplugin_save_settings' );
// 清理并保存数据
$option_value = sanitize_text_field( $_POST['myplugin_option'] );
update_option( 'myplugin_custom_option', $option_value );
echo '<div class="notice notice-success"><p>تم تعيين الإعدادات وحفظها!</p></div>';
}
// 获取已保存的值
$saved_value = get_option( 'myplugin_custom_option', '默认值' );
?>
<div class="wrap">
<h1>إعدادات الإضافة الخاصة بي</h1>
<form method="post" action="">
<?php wp_nonce_field( 'myplugin_save_settings' ); ?>
<label for="myplugin_option">الخيارات:</label>
<input type="text" id="myplugin_option" name="myplugin_option" value="<?php echo esc_attr( $saved_value ); ?>" />
<?php submit_button( '保存更改' ); ?>
<input type="hidden" name="trp-form-language" value="ar"/></form>
</div>
أنا لا أعرف ماذا أقول. التطوير المتقدم ونشر الإضافات (Advanced Development and Plugin Publishing)
عندما تصبح وظائف الإضافات معقدة، يصبح تنظيم الكود بشكل جيد أمرًا بالغ الأهمية. يُنصح باستخدام منهجية البرمجة الكائنية (Object-Oriented Programming – OOP) لتغليف وظائف الإضافات داخل كلاسات. هذا يساعد على تجنب تعارض أسماء الدوال، ويجعل هيكل الكود أكثر وضوحًا وسهولة في ال
تعد دعم اللغات الدولية للإضافات (plugins) مفتاحًا أساسيًا للوصول إلى العالمية. استخدمها بشكل فعال!__()و_e()تقوم الدوال مثل هذه بتغليف جميع النصوص الموجهة للمستخدمين، ثم تقوم بنقلها عبر…load_plugin_textdomain()تقوم الدالة بتحميل ملفات الترجمة. يجب ضبط ذلك بشكل صحيح في تعليقات رأس الإضافة (plugin header comments).Text Domainوهذا أيضًا ضروري للغاية.
الاستعدادات اللازمة قبل إطلاق الإضافة (Plugin)
قبل تقديم الإضافة إلى الدليل الرسمي أو توزيعها، يجب إجراء اختبارات شاملة. وهذا يشمل اختبارات التوافق مع إصدارات مختلفة من PHP وWordPress، بالإضافة إلى مجموعات متنوعة من القوالب والإضافات. يجب أن يتبع الكود معايير ترميز WordPress، ويتم توفير الحماية الأمنية اللازمة، مع التحقق من جميع المدخلات من المستخدمين وتنقيتها وتهريبها (escaping) بشكل صحيح.
اكتب وصفًا واضحًا للإضافة.README.txtقم بتوفير ملف يشرح وظيفة الإضافة، طريقة تثبيتها، والمشاكل الشائعة التي قد تواجه المستخدمين أثناء استخدامها. بعد ذلك، قم بضغط الكود المصدري للإضافة إلى ملف ZIP، ويمكنك بعد ذلك رفع هذا الملف إلى مجلد الإضافات على موق
الملخصات
تطوير إضافات ووردبريس (WordPress plugins) يبدأ بفهم آليات الاستجابة الأساسية (hook mechanisms)، ثم يتطور تدريجياً ليشمل إنشاء واجهات التحكم، تنظيم هيكل الكود، وأخيراً نشر الإضافة بشكل آمن. إتقان استخدام ميزات “الأفعال” (actions) و“المرشحات” (filters) هو الأساس، حيث تعتبر هذه الميزات الجسر الذي يربط بين الإضافة ونظام ووردبريس. سواء كنت تريد إضافة ميزة بسيطة أو بناء إضافة تجارية معقدة، فإن اتباع معايير البرمجة الآمنة، إجراء اختبارات شاملة، ومراعاة الجوانب الدولية (internationalization) هي مفاتيح النجاح. من خلال الممارسة المستمرة، ستتمكن من إنشاء إضافات قوية ومستقرة ومحبوبة من قبل المستخدمين.
الأسئلة الشائعة الأسئلة المتداولة
هل من الضروري تعلم لغة PHP قبل تطوير أي إضافات (plugins)؟
نعم، امتلاك معرفة أساسية قوية بلغة PHP أمر ضروري لتطوير إضافات (plugins) لمنصة WordPress، حيث أن معظم منصة WordPress نفسها وإضافاتها مكتوبة بلغة PHP. يجب أن تفهم مفاهيم مثل صيغة الكود الخاصة بلغة PHP، والدوال (functions)، والمتغيرات (variables)، والمصفوفات (arrays)، والبرمجة الكائنية (object-oriented programming)، حتى تتمكن من كتابة وتصحيح أكواد الإضافات بشكل فعال.
كيف يمكنني تجنب تعارض أسماء دوال الإضافات (plugins) الخاصة بي مع أسماء دوال الإضافات الأخرى؟
أفضل ممارسة لتجنب تضارب أسماء الدوال هي استخدام البرمجة الكائنية، حيث تُغلف جميع الدوال داخل طرق (methods) ضمن فئة (class). أما إذا كنت تستخدم البرمجة الإجرائية (procedural programming)، فيجب إضافة بادئة فريدة لأسماء جميع الدوال، وعادة ما تكون هذه البادئة مرتبطة باسم الإضافة (plugin) الخاصة بك أوmyplugin_أوmp_هذا يمكن أن يقلل بشكل كبير من احتمالية حدوث تعارضات في التسمية.
لماذا تختفي إعدادات الإضافة الخاصة بي بعد حفظها عند تحديث الصفحة؟
عادةً ما يحدث هذا بسبب عدم معالجة التحقق من الأرقام العشوائية المستخدمة في إرسال النماذج بشكل صحيح. قبل حفظ بيانات النموذج، يجب استخدام…check_admin_referer()أوwp_verify_nonce()تم إنشاء دالة للتحقق من الأرقام العشوائية للتأكد من أن الطلبات تأتي من مصدر موثوق، ولمنع هجمات تزوير الطلبات عبر المواقع (Cross-Site Request Forgery – XSS). إذا فشل التحقق، فإن ووردبريس سيمنع حفظ البيانات.
كيف يمكنني جعل نصوص الإضافات الخاصة بي قابلة للترجمة إلى لغات أخرى؟
يجب عليك ترجمة جميع النصوص الموجهة للمستخدمين داخل الإضافة إلى لغات أخرى. استخدم أدوات متخصصة لإدارة عمليات الترجمة والتكييف الدولي (internationalization and localization، اختصارًا: I18N) لضمان أن الموقع يعمل__()الدالة تقوم باسترجاع ترجمة النص الوارد كسلسلة نصية، أو تستخدمها بشكل ما._e()الدالة تقوم بالإخراج مباشرةً. كما أنه يجب عليك أيضًا تنفيذ بعض الإجراءات عند تهيئة الإضافة (مثل تثبيتها أو ربطها بالنظام).plugins_loaded(المرجع: استدعاء الخطاف)load_plugin_textdomain()هناك دوال متاحة لتحميل ملفات اللغة المطلوبة. يمكن لأدوات مثل Poedit أن تساعدك في إنشاء هذه الملفات..potملفات القوالب (Template files) و….po/.moأترجم المستندات.
ما التالي، ما التالي؟
القراءة الموسعة والمعرفة العملية
فيما يلي بعض الموضوعات ذات الصلة بموضوع هذه المقالة وهي مناسبة لمزيد من القراءة المتعمقة. وغالباً ما يكون من الأفضل إعطاء الأولوية للبدء بالمقال الأقرب إلى مشكلتك الحالية ثم التوسع تدريجياً إلى المواضيع المحيطة.
- دليل تطوير إضافات ووردبريس: كيف تبني إضافتك المخصصة الأولى من الصفر
- كيف تصبح مطورًا لإضافات ووردبريس: دليل شامل من الصفر إلى النهاية
- دليل شامل لتطوير إضافات ووردبريس: من المبتدئين إلى الخبراء في إنشاء إضافات متخصصة
- تطوير الإضافات في ووردبريس: من الأساسيات إلى الاحترافية - إنشاء أول إضافة مخصصة لك.
- من الصفر إلى الواحد: دليل شامل لتطوير أول إضافة (Plugin) لموقع ووردبريس (WordPress) الخاص بك خطوة بخطوة