ووردبريس هو نظام إدارة المحتوى الأكثر شيوعًا في العالم، وتعود قابليته القوية للتوسع إلى حد كبير إلى بنية الإضافات الخاصة به. عندما تكتشف أن الوظائف الحالية لا تلبّي احتياجاتك، يصبح تطوير إضافتك الخاصة هو الخيار الأفضل. لا يقتصر ذلك على حل مشكلة محددة فحسب، بل يُعد أيضًا وسيلة ممتازة للتعمق في فهم آلية عمل ووردبريس الأساسية. سيرشدك هذا الدليل خلال العملية الكاملة لتطوير أول إضافة ووردبريس لك، من إعداد البيئة إلى كتابة الشيفرة، وصولًا إلى النشر النهائي.
إعداد بيئة التطوير والأدوات.
قبل أن تبدأ في كتابة الشيفرة، تحتاج إلى بيئة تطوير مناسبة. وهذا يضمن أن تكون عملية التطوير لديك فعّالة ومتوافقة مع أفضل ممارسات ووردبريس.
إعداد بيئة التطوير المحلية
الخيار المفضل هو إعداد بيئة خادم محلي على جهاز الكمبيوتر الخاص بك. يمكنك استخدام XAMPP أو MAMP (Mac) أو WAMP (Windows) أو Docker الأكثر مرونة. تدمج هذه الحزم خادم Apache وقاعدة بيانات MySQL وPHP، مما يحاكي بشكل مثالي ظروف تشغيل WordPress على الإنترنت. بعد تثبيت الخادم المحلي، قم بتنزيل أحدث إصدار من WordPress من الموقع الرسمي WordPress.org، وأكمل الإعداد محليًا باتباع عملية “التثبيت في 5 دقائق” القياسية.
القراءة الموصى بها دليل للبدء في تطوير إضافات ووردبريس: كيفية بناء أول إضافة وظيفية الخاصة بك من الصفر。
محرر الأكواد والأدوات الأساسية
محرر أكواد قوي يعد أمرًا لا غنى عنه. يعد Visual Studio Code أو PhpStorm أو Sublime Text جميعها خيارات ممتازة، فهي توفر تمييزًا لبنية الشفرة، والإكمال الذكي للأكواد، ووظائف تصحيح الأخطاء. بالإضافة إلى ذلك، ستحتاج أيضًا إلى نظام للتحكم في الإصدارات مثل Git لإدارة التغييرات على أكوادك. وعلى الرغم من أن الإضافة الأولى قد تكون بسيطة، فإن اكتساب عادة استخدام التحكم في الإصدارات أمر بالغ الأهمية للتطوير المستقبلي.
قم بإنشاء ملف الإضافة (plugin) الخاص بك الأول.
يبدأ كل مكون إضافي في ووردبريس بملف رئيسي يحتوي على معلومات تعليق الرأس الضرورية لكي يتعرف ووردبريس على المكون الإضافي.
هيكل الملف الرئيسي للإضافة
في دليل تثبيت WordPress المحلي لديك، انتقل إلىwp-content/pluginsمجلد. أنشئ مجلدًا جديدًا هنا، وسمّهmy-first-plugin(يجب أن يكون الاسم موجزًا وقادرًا على وصف وظيفة الإضافة). داخل هذا المجلد، أنشئ ملف PHP، وعادةً ما يكون له الاسم نفسه للمجلد:my-first-plugin.phpسيكون هذا الملف نقطة الدخول للمكوّن الإضافي.
كتابة معلومات رأس الإضافة (Plugin Header Information)
في بداية هذا الملف الرئيسي، يجب عليك إضافة تعليق ترويسة للإضافة يتوافق مع معايير ووردبريس. يوفّر هذا التعليق المعلومات الأساسية عن الإضافة. فيما يلي مثال أساسي للغاية:
<?php
/**
* Plugin Name: 我的第一个插件
* Plugin URI: https://example.com/my-first-plugin
* Description: 这是一个用于学习的简单WordPress插件。
* Version: 1.0.0
* Author: 你的名字
* Author URI: https://example.com
* License: GPL v2 or later
* Text Domain: my-first-plugin
*/ هذه الشيفرة هي “بطاقة الهوية” الخاصة بالإضافة.Plugin Nameهو حقل إلزامي، إذ يحدد الاسم الذي سيظهر به الإضافة في واجهة إدارة ووردبريس. كما يُنصح أيضًا بملء المعلومات الأخرى بالكامل مثل الوصف ورقم الإصدار وما إلى ذلك. بعد حفظ الملف، انتقل إلى صفحة “الإضافات” في لوحة تحكم ووردبريس، ويُفترض أن ترى “إضافتي الأولى” تظهر في قائمة الإضافات، ويمكنك تفعيلها. وهي حاليًا لا تحتوي على أي وظيفة.
القراءة الموصى بها دليل شامل لتطوير إضافات ووردبريس: كيفية إنشاء أول إضافة وظيفية الخاصة بك من الصفر。
إضافة الميزات الأساسية للإضافة (Plugin)
بعد تفعيل الإضافة، سنضيف إليها وظيفتين أساسيتين: إضافة نص مخصص بعد محتوى المقالة، وإنشاء صفحة إدارة بسيطة.
استخدام الخطافات لتعديل محتوى المقالات
الآلية الأساسية في ووردبريس هي “الخطافات” (Hooks)، وهي تتيح لك إدراج تعليماتك البرمجية الخاصة في نقاط زمنية محددة. تُستخدم خطافات الإجراءات (Action Hooks) لتنفيذ إجراء معين، بينما تُستخدم خطافات المرشحات (Filter Hooks) لتعديل البيانات. نريد إضافة سطر من النص في نهاية محتوى المقالة، وهذا يتطلب استخدامthe_contentهذا الخيار المتعلق بالتصفية (filter hook).
أسفل تعليق رأس ملف الإضافة الرئيسي الخاص بك، أضف الدالة والخطاف التاليين:
// 在文章内容末尾添加自定义文本
function myfp_add_footer_text( $content ) {
// 仅在主循环的单篇文章页面添加
if ( is_single() && in_the_loop() && is_main_query() ) {
$custom_text = '<p><em>شكرًا لقراءتك! تم إنشاء هذه المقالة بواسطة “ملحقي الأول”.</em></p>';
$content .= $custom_text;
}
return $content;
}
// 将函数挂载到‘the_content’过滤器上
add_filter( 'the_content', 'myfp_add_footer_text' ); بعد حفظ الملف، قم بتحديث صفحة مقالة في الواجهة الأمامية للموقع، وسترى النص المضاف في أسفل محتوى المقالة. في هذا المقطع البرمجي،myfp_add_footer_textتستقبل الدالة المدخلات الأصلية$contentبعد التحقق من شروط الصفحة، أُلحق بعدها نص فقرة HTML مخصص، ثم أُعيد المحتوى بعد تعديله.add_filter()تقوم الدالة بربط دالتنا المخصصة بمرشحات WordPress الأساسية.
إنشاء قائمة إدارة بسيطة
بعد ذلك، سنقوم بإنشاء صفحة إعدادات للمكوّن الإضافي في لوحة تحكم ووردبريس. يتضمن ذلك استخدام خطّاف الإجراء لإضافة عنصر جديد إلى قائمة الإدارة. أضف الكود التالي:
// 在后台管理菜单中添加一个新页面
function myfp_add_admin_menu() {
add_menu_page(
'我的第一个插件设置', // 页面标题
'我的插件', // 菜单标题
'manage_options', // 所需权限
'my-first-plugin', // 菜单slug
'myfp_admin_page_html', // 用于输出页面内容的回调函数
'dashicons-admin-generic', // 图标(可选)
100 // 菜单位置
);
}
add_action( 'admin_menu', 'myfp_add_admin_menu' );
// 定义管理页面的HTML内容
function myfp_admin_page_html() {
// 检查用户权限
if ( ! current_user_can( 'manage_options' ) ) {
return;
}
?>
<div class="wrap">
<h1></h1>
<p>مرحبًا بك في صفحة إعدادات “الملحق الأول الخاص بي”. هذه مجرد بداية!</p>
</div>
أنا لا أعرف ماذا أقول. احفظ وقم بتحديث لوحة تحكم ووردبريس، ويجب أن ترى عنصر قائمة جديدًا باسم “إضافتي” بالقرب من أسفل شريط القائمة الأيسر. سيؤدي النقر عليه إلى الانتقال إلى صفحة إعدادات بسيطة. هنا،add_menu_page()الدالة مسؤولة عن تسجيل صفحة القائمة الرئيسية، بينماmyfp_admin_page_html()أما الدالة فتتولى عرض محتوى HTML لهذه الصفحة.
أمان الإضافات وتحسين الكود
عند تطوير المكونات الإضافية، تُعدّ الأمان وقابلية الصيانة من الجوانب الأساسية التي يجب أخذها في الاعتبار منذ البداية.
القراءة الموصى بها البدء من الصفر: لماذا يجب اختيار تطوير إضافات (plugins) لمنصة ووردبريس (WordPress)؟。
التحقق من صحة البيانات وتهيئتها للاستخدام (Data Validation and Escaping)
لا تثق أبداً في مدخلات المستخدم أو البيانات الخارجية. يجب معالجتها قبل إخراج أي بيانات إلى المتصفح أو حفظها في قاعدة البيانات. يوفّر WordPress عدداً كبيراً من الدوال المساعدة. على سبيل المثال، عند إخراج متغير إلى سمة HTML، استخدمesc_attr()؛ عند الإخراج إلى نص HTML، استخدمesc_html()؛ عند الإخراج إلى عنوان URL، استخدمesc_url()في السابقmyfp_admin_page_html()في الدالة، استخدمناesc_html()لإخراج عنوان الصفحة بأمان.
استخدم الفئات لتنظيم التعليمات البرمجية
مع زيادة وظائف الإضافة، فإن وضع جميع الدوال في مساحة الأسماء العامة قد يؤدي بسهولة إلى حدوث تعارض وارتباك. يُعد استخدام فئات PHP لتغليف وظائف الإضافة عادة جيدة. فهذا يمكن أن يحسن تنظيم الشفرة وقابليتها للقراءة وإعادة استخدامها. فيما يلي الإطار الأساسي لإعادة كتابة وظائفنا السابقة باستخدام فئة:
class My_First_Plugin {
// 构造方法,用于初始化钩子
public function __construct() {
add_filter( 'the_content', array( $this, 'add_footer_text' ) );
add_action( 'admin_menu', array( $this, 'add_admin_menu' ) );
}
public function add_footer_text( $content ) {
// ... 函数实现同上 ...
}
public function add_admin_menu() {
// ... 函数实现同上 ...
}
public function admin_page_html() {
// ... 函数实现同上 ...
}
}
// 实例化插件类
new My_First_Plugin(); تربط هذه الطريقة جميع الأساليب والخصائص ذات الصلة داخل كائن واحد، مما يجعل البنية أكثر وضوحًا.
الملخصات
من خلال هذا الدليل، أكملت الخطوات الأساسية لإنشاء إضافة ووردبريس من الصفر: إعداد البيئة، وإنشاء ملف الإضافة الذي يحتوي على معلومات الرأس القياسية، واستخدام خطافات الإجراءات وخطافات التصفية لإضافة وظائف إلى محتوى المقالات، وإنشاء واجهة إدارة، مع تكوين فهم أولي لأهمية الأمان وتنظيم الشيفرة. هذه مجرد نقطة بداية، فعالم تطوير إضافات ووردبريس واسع جدًا، ويمكنك استكشاف المزيد من الميزات المتقدمة مثل الشيفرات القصيرة (Shortcode)، والودجات (Widget)، وأنواع المقالات المخصصة (Custom Post Type)، ونقاط نهاية REST API وغيرها. تذكّر أن قراءة الشيفرة الأساسية، والاطلاع على أساليب تنفيذ الإضافات الممتازة، والرجوع إلى وثائق المطورين الرسمية هي أفضل السبل للاستمرار في التطور.
الأسئلة الشائعة الأسئلة المتداولة
ما هي التقنيات التي يجب إتقانها لتطوير الإضافات؟
يتطلب تطوير إضافات ووردبريس إتقان أساسيات PHP وHTML وCSS وJavaScript. تُعد PHP هي الأساس، لأن ووردبريس نفسه مكتوب بلغة PHP، وستحتاج إلى استخدامها لكتابة منطق الإضافة. يُستخدم HTML وCSS لبناء الواجهة الأمامية، بينما يمكن استخدام JavaScript، وخاصة jQuery وES6+ الحديثة، لتعزيز التفاعلية وطلبات AJAX. كما أن امتلاك معرفة أساسية بـ MySQL يساعد أيضًا في التعامل مع البيانات.
لماذا لا تظهر الإضافة الخاصة بي في الواجهة الخلفية؟
يرجى أولاً التحقق من النقاط التالية: 1. ما إذا كان الملف الرئيسي للإضافة موضوعًا فيwp-content/pluginsداخل مجلد مستقل ضمن الدليل. 2. تعليق رأس الإضافة في الملف الرئيسي (خاصةًPlugin Name:)ما إذا كان التنسيق صحيحًا وخاليًا من الأخطاء. 3. ما إذا كان ترميز الملف هو UTF-8 without BOM. 4. ما إذا كانت هناك أخطاء نحوية تؤدي إلى فشل PHP في التحليل، ويمكن التحقق من سجل تصحيح أخطاء WordPress (يلزم فيwp-config.phpتم تفعيلها في الوسط.WP_DEBUG)。
كيف يمكن اختبار الإضافة دون التأثير على الموقع الإلكتروني المباشر؟
يوصى بشدة بإجراء تطوير الإضافات واختبارها في بيئة تطوير محلية (مثل Local by Flywheel وXAMPP) أو على خادم اختبار مستقل (موقع مرحلي). لا تختبر مطلقًا إضافات جديدة غير موثقة مباشرة على موقع إنتاج قيد التشغيل ويحتوي على بيانات مهمة. استخدم أدوات التحكم في الإصدارات (مثل Git) لإدارة الشيفرة، بحيث يمكنك التراجع بسهولة عند حدوث مشكلات.
كيف ينبغي إجراء تحديثات إصدار المكوّن الإضافي؟
يجب عليك التحديث في تعليق الرأس بملف الإضافة الرئيسيVersion:الحقل. بالنسبة للتحديثات الأكبر، يُنصح باتباع التحكم في الإصدارات الدلالي (SemVer)، فعلى سبيل المثال، تؤدي إصلاحات الأخطاء إلى زيادة رقم المراجعة (1.0.1)، وتؤدي الميزات الجديدة المتوافقة مع الإصدارات السابقة إلى زيادة الرقم الثانوي (1.1.0)، وتؤدي التحديثات غير المتوافقة إلى زيادة الرقم الرئيسي (2.0.0). يمكنك أيضًا تمكين المستخدمين من تلقي إشعارات التحديث في الواجهة الخلفية من خلال تنفيذ آلية لاكتشاف التحديثات (على سبيل المثال، استضافة معلومات الإضافة على خادمك الخاص أو في دليل إضافات WordPress).
ما الشروط المطلوبة لنشر الإضافة في الدليل الرسمي؟
إذا كنت ترغب في إرسال إضافة إلى الدليل الرسمي للإضافات على WordPress.org، فيجب استيفاء الشروط الرئيسية التالية: يجب أن يكون كود الإضافة متوافقًا مع ترخيص GPLv2 أو أي إصدار أعلى؛ ويجب أن تكون جودة الكود مقبولة ومتوافقة مع «معايير ترميز WordPress»؛ ويجب أن تكون الوظائف عامة وعملية، وألا تكون مخصصة لموقع معين فقط؛ كما يجب ألا تتضمن أي كود ضار أو روابط مزعجة. قبل الإرسال، احرص على قراءة إرشادات ومتطلبات الإرسال التفصيلية بعناية في «مركز المطورين» ضمن الدليل الرسمي.
ما التالي، ما التالي؟
القراءة الموسعة والمعرفة العملية
فيما يلي بعض الموضوعات ذات الصلة بموضوع هذه المقالة وهي مناسبة لمزيد من القراءة المتعمقة. وغالباً ما يكون من الأفضل إعطاء الأولوية للبدء بالمقال الأقرب إلى مشكلتك الحالية ثم التوسع تدريجياً إلى المواضيع المحيطة.
- دليل الوصول إلى الاحترافية في بناء المواقع باستخدام ووردبريس: من الصفر إلى الإتقان، لإنشاء مواقع إلكترونية مهنية
- لماذا يتم اختيار ووردبريس (WordPress) كمنصة أساسية لبناء المواقع الإلكترونية؟
- دليل أساسي لتعلم ووردبريس: بناء موقعك المهني الأول من الصفر
- ما هو ووردبريس (WordPress)؟ مقدمة شاملة عن نظام إدارة المحتوى
- مقدمة: لماذا اختيار استخدام ووردبريس (WordPress) للتطوير؟