ووردبريس، كأكثر أنظمة إدارة المحتوى شيوعًا على مستوى العالم، يعتمد قدرته الكبيرة على التوسع بشكل أساسي على الإضافات (البرامج الإضافية). من خلال تطوير هذه الإضافات، يمكنك إضافة أي ميزات مخصصة إلى موقعك الإلكتروني دون الحاجة إلى تعديل الكود الأساسي للنظام. سيقوم هذا الدليل بمرافقتك خلال كامل عملية إنشاء أول إضافة وظيفية، مع تغطية كل الخطوات الرئيسية بدءًا من التحضير للبيئة المناسبة، مرورًا بكتابة ال
الاستعدادات وإعداد البيئة.
قبل كتابة أول سطر من الكود، تحتاج إلى بيئة تطوير مناسبة. هذا لا يساعد فقط على تحسين الكفاءة، ولكنه أيضًا يمنع المخاطر التي قد تنشأ أثناء التصحيح على مواقع الويب الحقيقية.
إنشاء بيئة تطوير محلية
ننصح باستخدام حزم برمجيات الخوادم المحلية مثل XAMPP أو MAMP أو Laragon، حيث تقوم هذه الحزم بتثبيت خدمات Apache وMySQL وPHP بنقرة واحدة، مما يوفر بيئة محاكاة مثالية للبيئة الحقيقية على الإنترنت. تأكد من أن إصدار PHP الذي تستخدمه متوافق مع إصدار WordPress الذي تريد تثبيته؛ عادةً ما توفر موقع ووردبريس الرسمي متطلبات الإصدار الأحدث.
القراءة الموصى بها دليل شامل لتطوير إضافات ووردبريس: كيفية إنشاء أول إضافة وظيفية الخاصة بك من الصفر。
تثبيت ووردبريس (WordPress) ومحرر الكود (Code Editor)
قم بتثبيت موقع ووردبريس جديد على الخادم المحلي، وذلك لاستخدامه في تطوير واختبار الإضافات (البرامج الإضافية). بالإضافة إلى ذلك، اختر محرر كود قوي مثل Visual Studio Code أو PhpStorm؛ فهذه المحررات توفر دعمًا ممتازًا لتلوين صيغة لغة PHP، وتقديم اقتراحات أثناء كتابة الكود، وتسهيل عملية التصحيح، مما يحسن بشكل كبير تجربة البرمجة.
قم بإنشاء ملف الإضافة (plugin) الخاص بك الأول.
يمكن أن يتكون أحد أبسط إضافات ووردبريس (WordPress plugins) من ملف واحد فقط. سنبدأ بإضافة بسيطة تحتوي على رسالة “Hello World” لنفهم بنية الإضافات.
هيكل الملف الرئيسي للإضافة (Plugin Main File)
أولاً، في برنامج ووردبريس (WordPress)… wp-content/plugins داخل المجلد، قم بإنشاء مجلد جديد، على سبيل المثال… my-first-pluginداخل هذا المجلد، قم بإنشاء ملف الإضافة الرئيسي، وعادة ما يتم تسميته باسم الإضافة نفسها، مثل… my-first-plugin.php。
يجب أن يحتوي كل إضافة (plugin) على تعليقات محددة تحتوي على معلومات الإضافة في بداية الملف، وهذا أمر أساسي لكي يتمكن نظام ووردبريس (WordPress) من التعرف على الإضافات. فيما يلي مثال بسيط لذلك:
<?php
/**
* Plugin Name: 我的第一个插件
* Plugin URI: https://example.com/my-first-plugin
* Description: 这是一个用于学习的简单功能插件。
* Version: 1.0.0
* Author: 你的名字
* License: GPL v2 or later
* Text Domain: my-first-plugin
*/ بعد حفظ الملف، قم بالدخول إلى صفحة “الإضافات” (Plugins) في واجهة ووردبريس الخلفية، وستتمكن من رؤية هذه الإضافة وتفعيلها. على الرغم من أنها لا تحتوي على أي وظائف في الوقت الحالي، إلا أنك قد نجحت بالفعل في إنشاء إطار عمل لإضافة ووردبريس يتوافق مع معايير البرم
القراءة الموصى بها دليل شامل لتعلم تطوير إضافات ووردبريس من الصفر。
إضافة الميزات الأساسية للإضافة (Plugin)
بعد تفعيل الإضافة، دعونا نضيف لها ميزة بسيطة: إضافة سطر نصي مخصص في أسفل صفحات الموقع. سنستخدم أدوات ووردبريس (WordPress) لتنفيذ ذلك. wp_footer خطاف.
أضف الكود التالي أسفل تعليقات معلومات الإضافة:
// 在网站页脚输出自定义文本
function myfp_add_footer_text() {
echo '<p style="text-align: center;">شكرًا لاستخدامك أول إضافة (plugin) من تطويري!</p>';
}
add_action( 'wp_footer', 'myfp_add_footer_text' ); قم بحفظ الملف ثم قم بتحديث واجهة الموقع الإلكتروني، وسترى هذا النص المركز في أسفل الصفحة. يوضح هذا المثال كيفية القيام بذلك. add_action() تقوم الدالة بـ“تثبيت” الدالة المخصصة الخاصة بك في نقاط التنفيذ الأساسية لبرنامج ووردبريس (WordPress).
تنفيذ وظيفة إدارية عملية.
عادةً ما يحتاج البرنامج المكمل (الإضافة) الكامل إلى توفير واجهة تكوين في واجهة إدارة ووردبريس. فيما يلي، سنقوم بإضافة صفحة إعدادات بسيطة للبرنامج المكمل، تسمح للمسؤولين بتخصيص النص الذي يتم عرضه في القسم السفلي من الصفحة.
إنشاء صفحة قائمة الإدارة
نحتاج إلى إضافة صفحة قائمة فرعية تحت قائمة “الإعدادات” في الواجهة الخلفية. سيتطلب ذلك استخدام بعض الأدوات أو الخطوات البرمجية المناسبة. add_options_page() دالة.
أولاً، قم بإنشاء دالة لتوليد محتوى HTML الخاص بصفحة الإعدادات، ثم قم بتثبيتها (mounting it) في المكان المناسب. admin_menu على الخطاف.
القراءة الموصى بها البدء من الصفر: لماذا يجب اختيار تطوير إضافات (plugins) لمنصة ووردبريس (WordPress)؟。
\n// إضافة صفحة إعدادات المكوّن إلى قائمة الخلفية
function myfp_add_admin_menu() {
add_options_page(
'إعدادات مكوّني', // عنوان الصفحة
'مكوّني', // عنوان القائمة
'manage_options', // الأذونات (للمسؤولين)
'my-first-plugin', // slug للقائمة
'myfp_settings_page' // الدالة المستدعاة لعرض محتوى الصفحة
);
}
add_action( 'admin_menu', 'myfp_add_admin_menu' );
// إعداد محتوى صفحة HTML
function myfp_settings_page() {
?>
<div class="wrap">
<h1>إعدادات الإضافة الأولى الخاصة بي</h1>
<form method="post" action="/ar/options.php/" data-trp-original-action="options.php">
<?php
settings_fields( 'myfp_settings_group' ); // 设置字段组
do_settings_sections( 'my-first-plugin' ); // 设置区域
submit_button(); // 提交按钮
?>
<input type="hidden" name="trp-form-language" value="ar"/></form>
</div>
أنا لا أعرف ماذا أقول. إعدادات التسجيل، الحقول، وتخزين البيانات
مجرد وجود الصفحات لا يكفي؛ نحتاج إلى استخدام واجهة برمجة التطبيقات (API) الخاصة بـ WordPress لتسجيل الخيارات بشكل آمن والتحقق منها وحفظها. وهذا يتطلب ثلاث دوال أساسية:register_setting(), add_settings_section() و add_settings_field()。
// 初始化插件设置
function myfp_settings_init() {
// 注册一个新的设置项到数据库的 `wp_options` 表
register_setting( 'myfp_settings_group', 'myfp_footer_text' );
// 在设置页面添加一个区域
add_settings_section(
'myfp_section',
'页脚文字设置',
null, // 区域描述回调函数,这里不需要
'my-first-plugin'
);
// 在刚添加的区域里创建一个字段
add_settings_field(
'myfp_field_footer',
'显示的文本',
'myfp_field_footer_cb', // 用于输出字段HTML的回调函数
'my-first-plugin',
'myfp_section'
);
}
add_action( 'admin_init', 'myfp_settings_init' );
// 渲染文本输入字段的回调函数
function myfp_field_footer_cb() {
$text = get_option( 'myfp_footer_text', '感谢使用我的第一个插件!' ); // 获取已保存的值
echo '<input type="text" name="myfp_footer_text" value="' . esc_attr( $text ) . '" class="regular-text">'echo '<p class="description">النص المدخل هنا سيظهر في أسفل صفحة الموقع الإلكتروني.</p>';
} تم تحديث الميزة لاستخدام الإعدادات المحفوظة.
أخيرًا، قم بتعديل ما كتبناه سابقًا. myfp_add_footer_text الدالة تقوم بقراءة القيم التي حددها المسؤول من قاعدة البيانات.
function myfp_add_footer_text() {
$footer_text = get_option( 'myfp_footer_text', '感谢使用我的第一个插件!' );
if ( ! empty( $footer_text ) ) {
echo '<p style="text-align: center;">'`. esc_html($footer_text)`.'</p>';
}
}
add_action( 'wp_footer', 'myfp_add_footer_text' ); الآن، بعد تسجيل الدخول إلى واجهة خلفية WordPress والانتقال إلى قسم “الإعدادات” → “الإضافات الخاصة بي” (Settings → My Plugins)، يمكنك تعديل نص القسم السفلي من الصفحة (الفوتر) وحفظ التغييرات. بعد ذلك، قم بتحديث محتوى الواجهة الأم
أمان الإضافات، تحسين أدائها، والاستعداد لنشرها
يجب أن يأخذ أي إضافة (plugin) مؤهلة في الاعتبار أفضل الممارسات فيما يتعلق بالأمان، والأداء، والتدويل (internationalization).
تنفيذ عمليات التحقق من صحة البيانات (Data Validation) وتهريب الرموز (Data Escaping)
لا تثق أبدًا بالبيانات التي يدخلها المستخدمون أو التي تُستخرج مباشرة من قاعدة البيانات. في المثال أعلاه، استخدمنا… esc_attr() لتهريب الخصائص (attributes) في حقول الإدخال، استخدم علامات الاستبدال المناسبة. esc_html() يتم تنفيذ عملية التهريب (escaping) في الجزء الأمامي (العميل) عند إخراج البيانات. بالنسبة للسيناريوهات الأكثر تعقيدًا، يجب استخدام طرق معينة لضمان صحة وسلامة البيانات المعروضة للمستخدمين sanitize_text_field() لتنظيف المدخلات، استخدم… wp_kses_post() للسماح بإخراج HTML آمن.
إضافة دعم للترجمة الدولية (Internationalization Support)
لكي يتمكن المستخدمون حول العالم من استخدام الإضافة، من الضروري ترجمة جميع النصوص الموجهة للمستخدمين. ولتحقيق ذلك، يجب استخدام أدوات أو خدمات متخصصة في الترجمة. __() و _e() وظائف مثل…، وكذلك تعريف حقل النصوص (text field).
قم بتحديث التعليقات الموجودة في بداية ملف الإضافة (البرنامج الإضافي) لضمان أنها تعكس المعلومات الصحيحة والمحدثة. Text Domain يجب أن يتوافق ذلك مع الاستدعاءات اللاحقة. ثم قم بتعديل السلاسل النصية في الكود، على سبيل المثال:
\n// استخدام الدالة الدولية في وصف الحقل.
echo '<p class="description">'\n' . esc_html__( 'النص الذي تُدخله هنا سيظهر في تذييل موقع الويب. '، 'my-first-plugin' ) . '</p>';
// 在输出函数中使用
$default_text = __( '感谢使用我的第一个插件!', 'my-first-plugin' );
$footer_text = get_option( 'myfp_footer_text', $default_text ); بعد ذلك، يمكنك استخدام أدوات مثل Poedit لإنشاء ما تحتاجه. .pot ملف قالب، مخصص لمساعدة المترجمين على القيام بعمليات الترجمة. .po و .mo أترجم المستندات.
إجراء الاختبارات النهائية وعملية التغليف.
قبل النشر، من الضروري اختبار وظائف الإضافة في بيئات مختلفة (مثل إصدارات مختلفة من PHP أو إصدارات مختلفة من WordPress). يجب التأكد من أن عمليات التفعيل والتعطيل وحفظ الإعدادات وحذف البيانات لا تسبب أخطاء أو تترك بيانات زائدة. يمكنك كتابة دالة لإزالة الإضافة وتنظيف البيانات المتبقية بعد استخدامها، وذلك عن طريق… register_uninstall_hook() خيار تنظيف قاعدة البيانات عندما يقوم المستخدم بحذف الإضافات (البرامج الإضافية).
أخيرًا، قم بضغط مجلد الإضافات الخاص بك إلى ملف مضغوط. .zip الملف: يمكن تثبيت هذا الحزمة المضغوطة مباشرةً عبر خاصية “تحميل الإضافات” (Upload Plugins) المتاحة في واجهة ووردبريس الخلفية، كما أنها تتوافق مع متطلبات التنسيق الخاصة بمجلد الإضافات الرسمي لووردبريس.
الملخصات
من خلال هذا الدليل، أكملت عملية بناء إضافة (plugin) كاملة الوظائف لموقع ووردبريس من الصفر. تعلمت كيفية إنشاء الملفات الأساسية للإضافة، واستخدام خطافات الأعمال (action hooks) لإضافة الميزات، واستغلال واجهة برمجة التطبيقات الخاصة بإعدادات ووردبريس (WordPress Settings API) لبناء واجهة الإدارة الخلفية، بالإضافة إلى فهم المعرفة الأساسية المتعلقة بالأمان والتدويل والتعبئة (packaging). هذه الإضافة البسيطة لنصوص القائمة (footer text) قد تكون بسيطة، لكن الهيكل الأساسي للإضافة وآلية الخطافات وواجهة الإعدادات التي تحتويها تعتبر الأساس الذي يمكن الاعتماد عليه في تطوير أي إضافة معقدة. في المستقبل، يمكنك تجربة ميزات أكثر تقدمًا مثل الكود المختصر (Shortcodes)، وأنواع المقالات المخصصة (custom article types)، ونقاط نهاية واجهة برمجة التطبيقات REST (REST API endpoints)، وذلك لتحسين مهاراتك في تطوير الإضافات تدريجيًا.
الأسئلة الشائعة الأسئلة المتداولة
هل يجب أن يكون المرء ملمًا بلغة PHP لتطوير إضافات (plugins) لمنصة WordPress؟
نعم، PHP هي اللغة البرمجية الأساسية المستخدمة في تطوير ووردبريس (WordPress) وإضافاته (plugins). يجب أن تتقن المفاهيم الأساسية للغة PHP مثل القواعد النحوية، الدوال (functions)، المصفوفات (arrays)، ومفاهيم البرمجة الكائنية (object-oriented programming). بالإضافة إلى ذلك، فإن معرفة HTML وCSS والجزء الأساسي من لغة JavaScript ستساعدك في تطوير الإضافات التي تحتوي على واجهات مستخدم (user interfaces).
هل يمكن اختيار اسم الملف الرئيسي للإضافة (البرنامج الإضافي) بأي اسم؟
ممكن، ولكن يجب أن يتطابق اسم الملف مع اسم الملف الرئيسي للـ PHP الموجود داخل مجلد الإضافات. عادةً، وللتسهيل، يكون اسم الملف الرئيسي نفس اسم مجلد الإضافات أو يحمل اسمًا مشابهًا له index.phpوالأهم من ذلك، يجب أن يحتوي رأس الملف على كتلة تعليقات تحتوي على معلومات الإضافة الصحيحة، حيث يقوم ووردبريس بتحليل هذه الكتلة من التعليقات لتحديد الإضافات.
لماذا لا تظهر إعدادات الإضافة (البرنامج الإضافي) بعد حفظها؟
يرجى اتباع الخطوات التالية للتحقيق في المشكلة: أولاً، تأكد من أن حقول الإعدادات الخاصة بك قد تم التحقق منها بشكل صحيح. register_setting() تم التسجيل بشكل صحيح، و… settings_fields() اسم مجموعة الإعدادات المستخدمة في استدعاء الدالة يتطابق مع الاسم المطلوب. بعد ذلك، قم بفحص النموذج (الفورم). action هل تشير الخاصية إلى شيء ما؟ options.phpأخيرًا، عند عرض النتائج في الواجهة الأمامية (الفرينت إند)، تأكد من أنك تستخدم الإعدادات أو الأدوات الصحيحة. get_option() الدالة، وأسماء الخيارات الممررة مطابقة تمامًا لتلك المسجلة أثناء التسجيل.
كيف يمكنني جعل الإضافة الخاصة بي تقوم بتنظيف البيانات عند تعطيلها؟
يمكنك استخدامه. register_uninstall_hook() هناك دالة لتسجيل خطاف (hook) لعملية الإزالة (uninstallation). في دالة الاستدعاء (callback function) الخاصة بهذا الخطاف، يمكنك استخدام ما تحتاجه. delete_option() دالة لحذف جميع خيارات قاعدة البيانات التي أنشأتها الإضافة. يرجى ملاحظة أن هذه العملية غير قابلة للعكس، ويجب تنفيذها فقط عندما يختار المستخدم بوضوح إلغاء الإضافة، وليس تعطيلها.
هل يمكن تقديم الإضافات المجانية إلى الدليل الرسمي لووردبريس (WordPress Official Directory)؟
نعم، تشجع ووردبريس (WordPress) المطورين رسميًا على تقديم الإضافات المجانية التي تتوافق مع المعايير إلى مكتبة الإضافات الخاصة بها. يتطلب ذلك أن يكون لديك حساب على موقع WordPress.org، ويجب عليك قراءة إرشادات تقديم الإضافات بعناية. يجب أن يتبع كودك معايير ترميز معينة، ولا يجوز أن يحتوي على أي كود ضار أو يخالف شروط الترخيص. بعد التقديم بنجاح، سيتمكن المستخدمون من البحث عن إضافتك وتثبيتها مباشرة من خلال واجهة ووردبريس الخلفية.
ما التالي، ما التالي؟
القراءة الموسعة والمعرفة العملية
فيما يلي بعض الموضوعات ذات الصلة بموضوع هذه المقالة وهي مناسبة لمزيد من القراءة المتعمقة. وغالباً ما يكون من الأفضل إعطاء الأولوية للبدء بالمقال الأقرب إلى مشكلتك الحالية ثم التوسع تدريجياً إلى المواضيع المحيطة.
- كيفية اختيار وتخصيص تصميم ووردبريس المثالي الذي يناسب احتياجاتك؟
- دليل تطوير إضافات ووردبريس: كيف تبني إضافتك المخصصة الأولى من الصفر
- كيف تصبح مطورًا لإضافات ووردبريس: دليل شامل من الصفر إلى النهاية
- من الصفر إلى الواحد: دليل شامل وخطوات عملية لبناء مواقع إلكترونية مهنية باستخدام WordPress
- دليل شامل لتطوير إضافات ووردبريس: من المبتدئين إلى الخبراء في إنشاء إضافات متخصصة