دليل تعليمي لتطوير الإضافات في ووردبريس: إنشاء أول وحدة وظيفية لديك من الصفر إلى واحد.

2 دقيقة للقراءة
2026-03-19
2026-06-03
2,724
أنا أحصل على عمولة عند التسوق عبر الروابط أدناه، ولا يُضاف أي تكلفة عليك.

为什么需要开发自定义WordPress插件

عندما لا تتمكن الميزات الجاهزة في WordPress والإضافات المتوفرة من تلبية احتياجات العمل المحددة بشكل كامل، يصبح تطوير إضافات مخصصة الحل الأكثر مباشرة. تسمح الإضافات المخصصة بإضافة أي ميزات تريدها إلى النظام الأساسي دون الحاجة إلى تعديل ملفات WordPress الأساسية. هذا لا يضمن فقط بقاء الميزات سارية المفعول بعد تحديثات WordPress، بل يجعلها أيضًا قابلة للتعديل والإدارة بسهولة بين المواقع المختلفة، مقارنةً بتعديل القوالب (الثيمات).functions.phpالملفات والإضافات (plugins) تمثل خيارًا أفضل لإعادة استخدام الوظائف، فهي تسمح بفصل كودك عن تصميم الموقع (الثيمات)، مما يزيد من مرونة المشروع وسهولة صيانته.

الاستعدادات البيئية والمعرفية قبل البدء في التطوير

قبل البدء في كتابة الكود، من الضروري إنشاء بيئة تطوير مناسبة وإتقان المعرفة الأساسية اللازمة.

إعداد بيئة التطوير المحلية

بيئة التطوير المحلية المستقرة والمعزولة أمر في غاية الأهمية. ننصح باستخدام أدوات مثل Local by Flywheel أو XAMPP أو MAMP لإنشاء بيئة متكاملة تحتوي على PHP و MySQL و Apache/Nginx بسرعة. تأكد من أن إصدار PHP الخاص بك أحدث من 7.4، وإصدار MySQL أحدث من 5.6، وقم بتثبيت أحدث إصدارات WordPress.wp-config.phpفي هذا السياق، يُقترح…WP_DEBUGتم تعيين الثابت على قيمةtrue، من أجل عرض رسائل الأخطاء أثناء عملية التطوير.

القراءة الموصى بها دليل شامل لتطوير إضافات ووردبريس: كيفية بناء أول إضافة وظيفية الخاصة بك من الصفر

المعرفة الضرورية بلغة PHP وواجهة برمجة التطبيقات (API) الخاصة بمنصة WordPress

لتطوير إضافات (plugins)، من الضروري امتلاك معرفة أساسية بلغة PHP، وتشمل هذه المعرفة استخدام المتغيرات (variables)، الدوال (functions)، الكلاسات (classes)، ومساحات الأسماء (namespaces)، بالإضافة إلى كيفية التعامل مع قواعد البيانات بشكل آمن. الأهم من ذلك، أن تكون على دراية كاملة بالواجهات البرمجية التطبيقية (APIs) الغنية التي يوفرها WordPress، مثل خطافات الأفعال (action hooks) وخطافات المرشحات (filter hooks). تسمح خطافات الأفعال بتنفيذ كود مخصص في أوقات محددة، بينما تسمح خطافات المرشحات بتعديل البيانات. يعتمد تنفيذ وظائف الإضافة إلى حد كب

خادم ووردبريس من شركة UltaHost
ضمان استرداد المال خلال 30 يومًا، عرض نطاق ترددي وقواعد بيانات غير محدودين، حماية مجانية ضد هجمات DDoS، خصم 50% عند الشراء لمدة 3 سنوات (السعة المتاحة: 501–4 تيرابايت).

إنشاء الهيكل الأساسي لأول إضافة (plugin)

بعد ذلك، سنتعرف على الهيكل الأساسي للإضافات (plugins) من خلال إنشاء إضافة بسيطة باسم “Hello World”.

الإطار الأساسي لملفات الإضافات الرئيسية

يجب أن يحتوي كل إضافة (plugin) على ملف رئيسي يحتوي على معلومات الإضافة الأساسية. يرجى وضع هذا الملف في المجلد الخاص بتثبيت WordPress الخاص بك.wp-content/pluginsداخل المجلد، قم بإنشاء مجلد جديد، وعلى سبيل المثال، أطلق عليه اسم…my-first-pluginداخل هذا المجلد، قم بإنشاء الملف الرئيسي للغة PHP، ويمكن تسميته…my-first-plugin.phpفي بداية هذا الملف، يجب عليك إضافة تعليق رأسي يحتوي على معلومات قياسية للإضافة (plugin information header comment).

<?php
/**
 * Plugin Name:       我的第一个插件
 * Plugin URI:        https://yourwebsite.com/my-first-plugin
 * Description:       这是一个学习用的示例插件,用于在管理后台显示欢迎信息。
 * Version:           1.0.0
 * Author:            你的名字
 * License:           GPL v2 or later
 * Text Domain:       my-first-plugin
 */

هذا الكتلة التعليقية ضرورية، حيث يعتمد ووردبريس عليها لتحديد وعرض إضافتك في قائمة الإضافات الخاصة به في الخلفية.

إنشاء صفحة قائمة إدارة الخلفية

لجعل الميزة مرئية في واجهة خلفية ووردبريس (WordPress backend)، نحتاج إلى إضافة صفحة قائمة إدارية. استمر في إضافة الكود إلى الملف الرئيسي للإضافة (plugin main file). سنستخدم…add_action()تم تثبيت الدالة (Function) بنجاح.admin_menuهذا الحركة مرتبطة بخطاف معين.

القراءة الموصى بها من المبتدئين إلى الخبراء: دليل كامل لتطوير الإضافات في ووردبريس وأفضل الممارسات.

// 添加管理菜单
function mfp_add_admin_menu() {
    add_menu_page(
        '我的插件设置', // 页面标题
        '我的插件',     // 菜单标题
        'manage_options', // 权限(管理员)
        'my-first-plugin', // 菜单slug
        'mfp_admin_page_content', // 渲染页面内容的函数
        'dashicons-smiley', // 图标(使用Dashicon)
        6 // 菜单位置
    );
}
add_action('admin_menu', 'mfp_add_admin_menu');

// 定义管理页面的内容
function mfp_admin_page_content() {
    ?&gt;
    <div class="wrap">
        <h1>مرحبًا بكم في أول إضافة (plugin) خاصة بي!</h1>
        <p>هذا مثال بسيط على إضافة (plugin) لبرنامج ووردبريس (WordPress).</p>
    </div>
    أنا لا أعرف ماذا أقول.

سيقوم هذا الكود بإضافة عنصر قائمة رئيسي يُسمى “My Plugins” إلى شريط التنقل الأيسر في واجهة ووردبريس الخلفية، وعند النقر عليه سيتم عرض صفحة ترحيب. يُفضل أن تضيف اسمك الخاص كبادئة لأسماء الدوال (مثل…).mfp_)، لتجنب حدوث تعارض مع أسماء الدوال الخاصة بالإضافات أو الثيمات الأخرى.

إنشاء أول وظيفة بسيطة

الآن، دعونا نضيف ميزة بسيطة على جانب الخادم. على سبيل المثال، إضافة نص مخصص تلقائيًا في نهاية محتوى كل مقال. سنستخدم في ذلك…the_contentمخالب المرشحات (Filter Hooks).

// 在文章内容后添加自定义文本
function mfp_append_text_to_content($content) {
    if (is_single()) { // 仅在单篇文章页面生效
        $custom_text = '<p><em>— تم تحسين هذا المقال بواسطة أول إضافة (plugin) قمت بإنشائها.</em></p>';
        $content .= $custom_text;
    }
    return $content;
}
add_filter('the_content', 'mfp_append_text_to_content');

توضح هذه الميزة الطريقة الأساسية لاستخدام المرشحات: استقبال المحتوى الأصلي، تعديله، ثم إرجاعه. إنها نمط قوي للغاية وشائع الاستخدام.

استضافة.كوم استضافة مشتركة
أداء عالٍ مع وحدات المعالجة المركزية AMD EPYC، ووحدات تخزين NVMe SSD وLiteSpeed، ودعم داخلي متخصص على مدار الساعة طوال أيام الأسبوع، وتدابير أمنية متقدمة بما في ذلك SSL، وقوة الغاشمة، والحماية من البرامج الضارة والحماية من DDoS، وتوفير ما يصل إلى 731 تيرابايت 4 تيرابايت

ممارسات متقدمة ومعايير في تطوير الإضافات (Plugins)

بعد تنفيذ الميزات الأساسية، اتباع أفضل الممارسات سيجعل إضافتك أكثر قوة وأمانًا.

المعالجة عند تفعيل وإلغاء تثبيت الإضافات

عندما يقوم المستخدم بتفعيل أو حذف إضافة (plugin)، قد يكون من الضروري إنشاء جداول بيانات، تحديد خيارات افتراضية، أو تنظيف البيانات التي تم إنشاؤها بواسطة تلك الإضافة. يوفر ووردبريس (WordPress) أدوات خاصة (hooks) للتعامل مع هذه الحال

يجب تنفيذ عمليات التسجيل والتفعيل والإلغاء (uninstallation hooks) داخل الملف الرئيسي للإضافة (plugin main file).register_activation_hookوregister_uninstall_hookتنفيذ الدالة: يجب أن يكون خيار إلغاء التثبيت عبارة عن طريقة ثابتة (static method) أو دالة مستقلة.

القراءة الموصى بها دليل كامل لتطوير الإضافات في ووردبريس: ابني إضافتك الخاصة من الصفر إلى واحد.

// 插件激活时执行的操作
function mfp_plugin_activation() {
    // 例如:在选项表中添加一个默认设置
    add_option('mfp_default_greeting', '你好,欢迎光临!');
}
register_activation_hook(__FILE__, 'mfp_plugin_activation');

// 插件卸载时执行的操作
function mfp_plugin_uninstall() {
    // 删除插件创建的选项
    delete_option('mfp_default_greeting');
    // 注意:谨慎操作,此处可删除自定义数据库表
}
register_uninstall_hook(__FILE__, 'mfp_plugin_uninstall');

اعتبارات الأمان، التكييف المحلي، والأداء

الأمان هو الأولوية القصوى في تطوير الإضافات (البرامج الإضافية لموقع ووردبريس). يجب التحقق من جميع المدخلات من المستخدمين (مثل بيانات النماذج ومعاملات URL) وتنقيتها من أي مخاطر أمنية محتملة. يوفر ووردبريس عددًsanitize_text_field(), esc_html(), wp_kses(), prepare()(للاستخدام في استعلامات قواعد البيانات) هذا يساعدك. لا تثق أبدًا بشكل مباشر بالبيانات المدخلة من المستخدمين، ولا تعرضها مباشرة على الصفحة أو في قاعدة البيانات.

إذا كانت الإضافة (plugin) موجهة للمستخدمين الدوليين، فمن الضروري دعم الترجمة والتكييف المحلي (i18n – Internationalization and Localization).__()و_e()تقوم دوال مثل `wrap` بتغليف جميع سلاسل النصوص التي تحتاج إلى الترجمة.

الاستضافة المشتركة InterServer
استضافة مشتركة $2.50 دولار أمريكي في الشهر، الشهر الأول $0.1 دولار أمريكي الرمز الترويجي tryinterserver، 461 نص برمجي للتطبيقات السحابية، تثبيت بنقرة واحدة.

من ناحية الأداء، يجب تجنب إجراء عمليات استعلام عن البيانات غير الضرورية أو العمليات التي تستهلك موارد كبيرة. استخدم الذاكرة المؤقتة (مثل خدمة الـ API المؤقتة – Temporary API) بشكل مناسب، وقم بتنظيم ملفwp_enqueue_script()وwp_enqueue_style()يتم إدراجها بشكل صحيح في القائمة، وتُعرض فقط عندما يتم تحميل الصفحات التي تحتاج إليها.

تعبئة وتوزيع الإضافات (Plugins)

بعد الانتهاء من التطوير، يمكنك ضغط مجلد الإضافة (البرنامج الإضافي) إلى ملف ZIP. يمكن للمستخدمين تثبيتها مباشرة من خلال صفحة “الإضافات -> تثبيت إضافات -> رفع الإضافة” في واجهة ووردبريس الخلفية.

إذا كنت ترغب في تقديم الإضافة الخاصة بك إلى الدليل الرسمي لإضافات WordPress، فيجب عليك اتباع إرشادات التقديم بدقة، وذلك يشمل معايير الكود (يُنصح باستخدام معايير كتابة الكود الخاصة بـ WordPress)، ووجود تعليقات وثائقية كاملة، وإعلانات عن التوافق مع متطلبات النظام، بالإضافة إلى التأكد من عدم وجود أي كود يخالف شروط رخصة GPL. في عام 2026، من المتوقع أن تتغير معايير مراجعة الإضافات مع تطور منصة WordPress، لذا يجب قراءة المتطلبات الأخيرة بعناية قبل التقديم.

الملخصات

تطوير إضافات ووردبريس (WordPress plugins) هو عملية تحويل الأفكار الشخصية إلى وظائف قوية ومفيدة. بدأنا بفهم دوافع التطوير، ثم أنشأنا بيئة محلية للعمل، وتدريجياً مارسنا إجراءات إنشاء هيكل ملفات الإضافة، وإضافة القوائم الخلفية، وتنفيذ الوظائف الأساسية، بالإضافة إلى التعامل مع أحداث دورة حياة الإضافة مثل التفعيل والإلغاء. الأهم من ذلك، أننا ناقشنا معايير التطوير الأساسية مثل الأمان والتكييف مع اللغات المختلفة (الترجمة) والأداء، والتي تعتبر الأسس الرئيسية لضمان جودة وموثوقية الإضافات. المفتاح لاتخاذ الخطوة الأولى في التطوير هو البدء بالممارسة العملية؛ ابدأ من مثال “Hello World” الموجود في هذا المقال، واستكشف باستمرار واجهة برمجة التطبيقات (API) الواسعة ونظام الروابط (hooks) الخاص بووردبريس، وستتمكن تدريجياً من بناء إضافات معقدة وعملية توسع قدرات ووردبريس بشكل كبير.

الأسئلة الشائعة الأسئلة المتداولة

هل يجب أن يكون المرء متمكنًا بشكل كامل من لغة PHP لتطوير إضافات (plugins) لمنصة WordPress؟

نعم، لتطوير إضافات (plugins) لووردبريس (WordPress)، من الضروري امتلاك أساس متين في لغة PHP. وذلك لأن ووردبريس نفسه مبني على PHP، وكذلك الجزء الأساسي من منطق الإضافات يتم كتابته بلغة PHP. يجب أن تفهم وظائف PHP والفئات (classes) ومساحات الأسماء (namespaces) بالإضافة إلى المفاهيم الأساسية للبرمجة الكائنية. بالإضافة إلى ذلك، فإن معرفة أساسيات HTML وCSS وJavaScript مفيدة للغاية لإنشاء وظائف واجهة المستخدم الأمامية (frontend) التفاعلية.

ما هو الفرق الجوهري بين وظائف ملفات functions.php في الإضافات (plugins) والقوالب (themes)؟

الفرق الرئيسي بين الاثنين يكمن في استخدام الكود وقابليته للنقل (أي القدرة على التشغيل على أنظمة مختلفة).functions.phpيُستخدم الكود المضاف لتحسين مظهر ووظائف الموضوع الحالي، ولكن هذه الوظائف تفقد فعاليتها عند تغيير الموضوع. أما الإضافات (plugins) فهي وحدات وظيفية مستقلة عن المواضيع، والهدف منها توفير مجموعة معينة من الوظائف التي يمكن استخدامها مع أي موضوع. لذلك، يجب تطوير الوظائف العامة مثل نماذج الاتصال وتحسينات SEO كإضافات، بينما يُفضل وضع الوظائف التي ترتبط ارتباطًا وثيقًا بتخطيط وأسلوب الموضوع ضمن الموضوعfunctions.phpالوسط.

كيفية التعامل مع مشاكل التوافق بين إصدارات مختلفة من ووردبريس (WordPress)

المفتاح لحل مشاكل التوافق يكمن في استخدام واجهات برمجة التطبيقات (APIs) بحذر وإجراء عمليات فحص شرطي (conditional checks) بشكل دقيق. أثناء عملية التطوير، يجب الرجوع إلى الدليل الرسمي لووردبريس لمعرفة الإصدارات التي تم فيها إدخال الدوال (functions) أو الكلاسات (classes) أو الأدوات المساعدة (hooks) التي تستخدمها. وفfunction_exists()أوclass_exists()قم بفحص ما إذا كانت الميزة متاحة أم لا؛ إذا لم تكن متاحة، فقدم حلًا بديلًا مناسبًا أو عرض رسالة تنبيه ودودة للمستخدم. بالإضافة إلى ذلك، يجب توضيح نطاق إصدارات ووردبريس التي تم اختبار الإضافة عليها في تعليقات بداية الكود

كيف يمكن إنشاء لوحة تحكم قابلة للتعديل للإضافة (البرنامج الإضافي)؟

الطريقة القياسية لإنشاء لوحة تحكم للإضافة (plugin control panel) هي استخدام واجهة برمجة التطبيقات (API) الخاصة بإعدادات ووردبريس (WordPress Settings API). تتضمن هذه العملية:register_setting()قم بتسجيل مجموعة إعدادات وحقول، ثم استخدمها.add_settings_section()وadd_settings_field()لتحديد الفصول المتعلقة بمناطق الإعدادات والحقول المحددة، ثم استخدام هذه المعلومات في دوال الاستدعاء (callback functions) على صفحة القائمة.settings_fields()وdo_settings_sections()لعرض النموذج بشكل صحيح، سيقوم API للإعدادات (Settings API) تلقائيًا بمعالجة عمليات التحقق من صحة بيانات الاعتماد (nonce) عند إرسال النموذج، وفحص الصلاحيات، وحفظ التغييرات المطلوبة. هذا يعتبر أفض

ما هي الطريقة الصحيحة للاتصال بقاعدة البيانات أثناء تطوير الإضافات (plugins)؟

لا تستخدم أبدًا دوال MySQL المتاحة مباشرة في PHP. يوفر WordPress الوسائل اللازمة للتعامل مع قواعد البيانات بشكل أكثر سهولة وأمانًا.wpdbاستخدم فئات عالمية (global classes) للتفاعل بأمان مع قاعدة البيانات. يمكنك القيام بذلك عن طريق استخدام المتغيرات العالمية (global variables).$wpdbقم بزيارته. بالنسبة للاستعلامات، وخاصة تلك التي تتضمن مدخلات من المستخدمين، يجب استخدام… (Please visit it; for queries, especially those involving user input, make sure to use…)$wpdb->prepare()طرق للوقاية من هجمات الإدخال الزائد في SQL (SQL Injection Attacks). عند إنشاء جداول بيانات مخصصة، يجب تنفيذ أوامر SQL الخاصة بإنشاء الجداول داخل خطوط الكود المرتبطة بتفعيل الإضافات (plugins)، واستخدام…$wpdb->get_charset_collate()للتأكد من أن مجموعة الأحرف متوافقة مع إعدادات ووردبريس، يجب اتباع الخطوات التالية: