الإلمام الشامل بتطوير إضافات ووردبريس: بناء وظائف مخصصة من الصفر

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

لماذا يتم اختيار تطوير إضافات (Plugins) لمنصة ووردبريس (WordPress)؟

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

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

بناء أول إضافة (Plugin) الخاصة بك: الهيكل الأساسي

لإنشاء إضافة (plugin) لووردبريس (WordPress)، يجب أولاً فهم مكوناتها الأساسية. كل إضافة تحتاج إلى ملف رئيسي على الأقل، وعادة ما يتم تسمية هذا الملف باسم الإضافة نفسها. my-first-plugin.phpتعتبر تعليقات رأس الإضافة (plugin header comments) الموجودة في أعلى الملف ضرورية للغاية، حيث توفر هذه التعليقات معلومات أساسية عن الإضافة لنظام ووردبريس (WordPress).

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

إنشاء ملف رئيسي للإضافة (plugin main file)

الملف الرئيسي للإضافة (plugin) هو نقطة الدخول إلى وظائف الإضافة نفسها. يجب عليك إضافة كتلة تعليقات تحتوي على معلومات قياسية عن الإضافة في بداية هذا الملف. فيما يلي مثال أساسي على الكود:

خادم ووردبريس من شركة UltaHost
ضمان استرداد المال خلال 30 يومًا، عرض نطاق ترددي وقواعد بيانات غير محدودين، حماية مجانية ضد هجمات DDoS، خصم 50% عند الشراء لمدة 3 سنوات (السعة المتاحة: 501–4 تيرابايت).
<?php
/**
 * Plugin Name:       我的第一个插件
 * Plugin URI:        https://example.com/my-first-plugin
 * Description:       这是一个用于学习WordPress插件开发的示例插件。
 * Version:           1.0.0
 * Author:            你的名字
 * License:           GPL v2 or later
 * Text Domain:       my-first-plugin
 */

قم بحفظ هذا الكود في ملف PHP، ثم ضعه في المكان المناسب داخل نظام الويب الخاص بك. /wp-content/plugins/ مجلد جديد داخل المجلد (على سبيل المثال…) my-first-pluginبعد ذلك، يمكنك رؤية الإضافة وتفعيلها في صفحة “الإضافات” (Plugins) داخل واجهة ووردبريس الخلفية. على الرغم من أن هذه الإضافة لم تضف أي ميزات بعد، إلا أنها أصبحت إضافة قانونية ومعترف بها من قبل ووردبريس.

فهم هيكل مجلدات الإضافات (plugins)

مع زيادة وظائف الإضافات (البرامج الإضافية)، أصبحت هيكلية المجلدات المنطقية أمرًا بالغ الأهمية لتنظيم الكود. قد يتضمن مجلد الإضافة النموذجي الأجزاء التالية:
ملف الإضافة الرئيسي (مثل ) my-first-plugin.phpيقع في المجلد الرئيسي للإضافة (plugin root directory)، ويحتوي على معلومات رأس الإضافة (plugin header information).
- includes/ الدليل: يحتوي على ملفات الكلاسات أو الدوال الخاصة بالوظائف الأساسية.
- admin/ المحتويات: يحتوي على الكود المتعلق بواجهة الإدارة الخلفية.
- public/ الدليل: يحتوي على الكود المتعلق بالمنطق الأمامي (الجزء الخاص بتطوير واجهة المستخدم).
- assets/ المجلد: يحتوي على ملفات أنماط CSS، وبرامج JavaScript، والصور، وغيرها من ملفات الموارد.
- languages/ المجلد: يحتوي على ملفات الترجمة الدولية (بصيغة .po و .mo).

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

مفاهيم أساسية في التطوير: الخطافات (Hooks) والمرشحات (Filters)

الفلسفة الأساسية في تطوير إضافات ووردبريس (WordPress Plugins) تكمن في مفهوم “الخطافات” (Hooks). تسمح الخطافات بإدخال كود مخصص في نقاط زمنية معينة أو في أماكن محددة داخل كود ووردبريس، وذلك لتغيير سلوكه الافتراضي أو توسيعه. تنقسم الخطافات بشكل رئيسي إلى نوعين: خطافات الإجراءات (Action Hooks) وخطافات المرشحات (Filter Hooks).

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

استخدم خطافات الأفعال (Action Hooks) لتنفيذ كود مخصص.

تسمح خيوط الأعمال (Action Hooks) بأن تقوم ببعض الأشياء في أوقات محددة من عملية تنفيذ ووردبريس، مثل إرسال إشعارات بعد نشر مقالة أو إضافة كود إلى الجزء العلوي من الصفحة، وما إلى ذلك. add_action() يمكن للدوال أن تقوم بتثبيت الدوال المخصصة الخاصة بك على أحد خطوط العمل (action hooks).

على سبيل المثال، دعونا نقوم بإنشاء وظيفة تقوم بعرض معلومات مخصصة في أسفل صفحة الموقع الرئيسية. أولاً، يجب عليك تعريف دالة استدعاء (callback function)، ثم استخدامها لعرض المعلومات المرغوبة. add_action() قم بربطها بـ wp_footer هذا الخطاف.

// 定义一个回调函数
function myplugin_add_footer_text() {
    echo '<p style="text-align:center;">شكرًا لاستخدام هذه الإضافة!</p>';
}
// 将函数挂载到 `wp_footer` 动作钩子
add_action( 'wp_footer', 'myplugin_add_footer_text' );

عندما يقوم ووردبريس بتنفيذ جزء القائمة السفلية (الفوتر)، فإنه يقوم تلقائيًا بالاستدعاء المطلوب. myplugin_add_footer_text() الدالة تقوم بإخراج النص الذي قمنا بتعريفه.

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

استخدم مُعلقات الفلتر لتعديل البيانات.

تسمح خيوط الفلاتر (Filter Hooks) بتعديل البيانات قبل استخدامها أو حفظها. على سبيل المثال، يمكنك تعديل عناوين المقالات أو تصفية محتوى التعليقات، وما إلى ذلك. add_filter() يمكن للدوال أن تقوم بتثبيت الدوال المخصصة الخاصة بك على أحد خطافات (hooks) المرشحات (filters).

لنفترض أننا نريد إضافة رمز علامة تجارية تلقائيًا في نهاية عناوين جميع المقالات. يمكننا ربط دالة لتنفيذ هذا الأمر. the_title مرشحات.

// 定义一个回调函数,它接收原始标题作为参数
function myplugin_add_trademark_to_title( $title ) {
    // 仅在前端文章列表和单篇文章页面修改,避免影响后台
    if ( ! is_admin() ) {
        $title .= ' ™';
    }
    // 必须返回修改后的值
    return $title;
}
// 将函数挂载到 `the_title` 过滤器钩子
add_filter( 'the_title', 'myplugin_add_trademark_to_title' );

في هذا المثال،$title المعلمة هي النص الأصلي للعنوان، ويجب على الدالة أن تقوم بتعديله ثم ترجع قيمة جديدة. هذا هو الفرق الرئيسي بين المرشحات (filters) والإجراءات (actions): يجب على المرشحات أن ترجع قيمة واحدة فقط.

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

إضافة صفحة إدارة وخيارات تعديل للإضافة (Plugin).

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

إنشاء عنصر قائمة لإعدادات الإضافة (Plugin Settings Menu Item)

الاستفادة من add_menu_page() أو add_submenu_page() يمكن للدوال أن تضيف قوائم خلفية (back-end menus) إلى الإضافات (plugins) الخاصة بك. عادةً، تقوم الإضافات البسيطة بإضافة صفحات الإعدادات الخاصة بها تحت القائمة الرئيسية “الإعدادات” كقوائم فرعية.

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

الكود أدناه يوضح كيفية إضافة صفحة قائمة فرعية (sub-menu page) وتعريف الدالة المسؤولة عن عرض محتويات هذه القائمة الفرعية.

// 在后台“设置”菜单下添加子菜单
function myplugin_add_settings_page() {
    add_options_page(
        '我的插件设置', // 页面标题
        '我的插件',     // 菜单标题
        'manage_options', // 权限要求(只有管理员可访问)
        'myplugin-settings', // 菜单slug
        'myplugin_render_settings_page' // 用于显示页面内容的回调函数
    );
}
// 使用 `admin_menu` 动作钩子在后台菜单初始化时执行上述函数
add_action( 'admin_menu', 'myplugin_add_settings_page' );

// 定义渲染设置页面的回调函数
function myplugin_render_settings_page() {
    ?&gt;
    <div class="wrap">
        <h1>إعدادات الإضافة الخاصة بي</h1>
        <form action="/ar/options.php/" method="post" data-trp-original-action="options.php">
            <?php
            // 输出设置字段、非ce等安全信息
            settings_fields( 'myplugin_settings_group' );
            do_settings_sections( 'myplugin-settings' );
            submit_button();
            ?>
        <input type="hidden" name="trp-form-language" value="ar"/></form>
    </div>
    أنا لا أعرف ماذا أقول.

استخدم واجهة برمجة التطبيقات (API) للتسجيل في الخيارات المحددة.

معالجة تقديم النماذج والتحقق منها يدويًا أمر مرهق وغير آمن. توفر واجهة برمجة التطبيقات (API) الخاصة بإعدادات ووردبريس (WordPress Settings API) طريقة قياسية وآمنة لإنشاء خيارات الإعدادات والتحقق منها وحفظها.

أنت بحاجة إلى استخدام… register_setting(), add_settings_section() و add_settings_field() استخدم دوال مثل هذه لتعريف إعداداتك.

// 在插件初始化时注册设置
function myplugin_register_settings() {
    // 1. 注册一个设置组及其数据
    register_setting(
        'myplugin_settings_group', // 设置组名称,需与 settings_fields() 参数一致
        'myplugin_option_name' // 存储在数据库中的选项名
    );

// 2. 添加一个设置区域(Section)
    add_settings_section(
        'myplugin_section_main', // Section ID
        '主要设置', // 标题
        null, // 可选的描述回调函数
        'myplugin-settings' // 所属的页面slug
    );

// 3. 向该区域添加一个设置字段
    add_settings_field(
        'myplugin_field_text', // 字段ID
        '示例文本输入', // 字段标签
        'myplugin_render_text_field', // 渲染字段HTML的回调函数
        'myplugin-settings', // 页面slug
        'myplugin_section_main' // Section ID
    );
}
add_action( 'admin_init', 'myplugin_register_settings' );

// 渲染文本输入字段的回调函数
function myplugin_render_text_field() {
    $option = get_option( 'myplugin_option_name' );
    $value = isset( $option['text'] ) ? $option['text'] : '';
    echo '<input type="text" name="myplugin_option_name[text]" value="' . esc_attr( $value ) . '" />';
}

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

الملخصات

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

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

ما هي المعرفة الأساسية المطلوبة لتطوير إضافات (Plugins) لمنصة ووردبريس (WordPress)؟

يجب أن تمتلك معرفة أساسية بلغة البرمجة PHP، حيث يتم كتابة هذه الإضافات بشكل أساسي باستخدام PHP. بالإضافة إلى ذلك، من المهم أن يكون لديك فهم أساسي للغات HTML وCSS وJavaScript، والتي تعتبر ضرورية لإنشاء واجهات المستخدم والتفاعلات الأمامية. سيكون من المفيد أيضًا فهم المفاهيم الأساسية لقواعد البيانات MySQL (على الرغم من أن WordPress توفر فئات مريحة للتعامل مع قواعد البيانات) والهيكل الأساسي لبرنامج WordPress نفسه (مثل مستويات القوالب والحلقات).

كيفية تصحيح أخطاء إضافة (Plugin) ووردبريس الخاصة بي؟

أولاً، تأكد من أنه في wp-config.php تم تفعيل الملف. WP_DEBUG و WP_DEBUG_LOGسيقوم هذا بتسجيل أخطاء PHP وتحذيراتها في ملف معين. /wp-content/debug.log في الملف، وليس على الصفحة، لتجنب التأثير على تجربة المستخدم. ثانيًا، يمكن استخدام… error_log() تقوم الدالة بإخراج معلومات تصحيح الأخطاء المخصصة إلى السجلات (اللوغات). بالنسبة للتطبيقات ذات المنطق المعقد، فإن استخدام ميزات التصحيح بواسطة النقاط المحددة (breakpoints) المتوفرة في بيئات التطوير المتك

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

أثناء عملية التطوير، يجب تجنب استخدام الدوال المهجورة (deprecated functions)، ويجب الرجوع إلى الوثائق الرسمية لمعرفة الإصدارات من ووردبريس (WordPress) التي تم فيها إدخال تلك الدوال. يمكنك القيام بذلك في الملف الرئيسي للإض @requires at least أو @requires PHP قم بتحديد المتطلبات الدنيا في تعليقات رأس الإضافة (plugin header comments). وفي الكود نفسه، يمكنك استخدام هذه المتطلبات كأساس للتنفيذ. function_exists() أو class_exists() للتحقق مما إذا كانت دالة معينة أو فئة معينة متاحة، وبالتالي توفير حل بديل يدعم التوافق مع الإصدارات السابقة.

كيف يمكنني تقديم إضافتي (البرنامج الإضافي) إلى الدليل الرسمي للإضافات؟

أولاً، يجب عليك التأكد من أن الإضافة (البرنامج الإضافي) تتبع بشكل كامل إرشادات تطوير الإضافات الرسمية ومعايير الكود المعتمدة. بعد ذلك، قم بتقديم طلب للحصول على مستودع SVN على موقع WordPress.org. قم بتحميل كود الإضافة الخاص بك (بما في ذلك ملف README.txt الذي يوضح كيفية استخدام الإضافة والملف الرئيسي للإضافة نفسها) وارسله إلى هذا المستودع SVN. /trunk المحتويات: بعد تقديم الطلب، سيقوم الفريق الرسمي بمراجعته، وبمجرد الموافقة عليه، سيتم إضافة الإضافة الخاصة بك إلى الدليل الرسمي حيث يمكن للمستخدمين في جميع أنحاء العالم تنزيلها وت