تطوير إضافات ووردبريس: بناء توسعات قوية لمواقع الويب من الصفر

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

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

المفاهيم الأساسية لمكونات ووردبريس (WordPress Plugins)

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

الهيكل الأساسي للإضافة (Plugin)

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

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

/**
 * Plugin Name:      我的强大扩展
 * Plugin URI:        https://example.com/my-awesome-plugin
 * Description:       这是一个用于演示的WordPress插件。
 * Version:           1.0.0
 * Author:            你的名字
 * License:           GPL v2 or later
 * Text Domain:       my-awesome-plugin
 */

فهم آلية الخطافات (Hook Mechanisms)

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

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

على سبيل المثال، استخدام add_action يمكن للدالة أن تقوم بإضافة نص إلى أسفل الصفحة عندما يزور المستخدم الموقع الإلكتروني.

add_action( 'wp_footer', 'my_custom_footer_message' );
function my_custom_footer_message() {
    echo '<p>شكرًا لزيارتكم لهذا الموقع!</p>';
}

قم بإنشاء أول إضافة (plugin) خاصة بك.

سيقوم هذا القسم بإرشادك خطوة بخطوة في إنشاء إضافة (plugin) بسيطة ذات وظيفة معينة، وذلك لتعتاد على عملية التطوير والبيئة المستخدمة فيه.

إنشاء دليل للإضافات (plugins) والملفات

أولاً، في مجلد تثبيت WordPress.wp-content/pluginsداخل المجلد، قم بإنشاء مجلد جديد، على سبيل المثال…greeting-pluginداخل هذا المجلد، قم بإنشاء الملف الرئيسي للغة PHP.greeting-plugin.phpوأضف معلومات رأس الإضافة المذكورة أعلاه.

تنفيذ وظيفة تحية بسيطة

سنقوم بإنشاء مكون (widget) يعرض رسالة تحية على لوحة التحكم الخلفية للموقع الإلكتروني. أضف الكود التالي إلى الملف الرئيسي لاستخدامه: wp_dashboard_setup Action Hook.

القراءة الموصى بها تحليل ملفات الإضافات الأساسية لووردبريس (WordPress Core Plugins)

add_action( 'wp_dashboard_setup', 'greeting_plugin_add_dashboard_widget' );
function greeting_plugin_add_dashboard_widget() {
    wp_add_dashboard_widget(
        'greeting_dashboard_widget', // 小部件ID
        '每日问候', // 小部件标题
        'greeting_dashboard_widget_content' // 回调函数,用于输出内容
    );
}
function greeting_dashboard_widget_content() {
    $user = wp_get_current_user();
    echo '<h3>你好,' . esc_html( $user-&gt;display_name ) . '!</h3>'echo '<p>أتمنى لك يوم عمل موفقًا!</p>';
}

بعد إكمال الخطوات أعلاه، قم بتسجيل الدخول إلى واجهة ووردبريس الخلفية، ثم اذهب إلى صفحة “الإضافات” (Plugins). يجب أن ترى إضافة تحمل اسم “My Powerful Extension”؛ قم بتفعيلها. بعد ذلك، قم بتحديث صفحة المؤشر (Dashboard) لترى الويدجت الجديد المضاف والذي يحمل اسم “التحيات اليومية” (Daily Greetings).

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

عادةً ما يحتاج الإضافة (plugin) الذي يتمتع بميزات كاملة إلى التعامل مع خيارات الإعدادات (settings options)، والموارد الثابتة (static resources)، بالإضافة إلى الالتزام بمعايير الأمان (security specifications).

إنشاء صفحة لإدارة الإضافات (Plugins)

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

استضافة.كوم استضافة مشتركة
أداء عالٍ مع وحدات المعالجة المركزية AMD EPYC، ووحدات تخزين NVMe SSD وLiteSpeed، ودعم داخلي متخصص على مدار الساعة طوال أيام الأسبوع، وتدابير أمنية متقدمة بما في ذلك SSL، وقوة الغاشمة، والحماية من البرامج الضارة والحماية من DDoS، وتوفير ما يصل إلى 731 تيرابايت 4 تيرابايت
add_action( 'admin_menu', 'my_plugin_create_admin_page' );
function my_plugin_create_admin_page() {
    add_menu_page(
        '我的插件设置', // 页面标题
        '我的插件', // 菜单标题
        'manage_options', // 所需权限
        'my-plugin-settings', // 菜单slug
        'my_plugin_settings_page_content', // 用于渲染页面的回调函数
        'dashicons-admin-generic', // 图标
        80 // 菜单位置
    );
}
function my_plugin_settings_page_content() {
    // 检查用户权限
    if ( !current_user_can( 'manage_options' ) ) {
        return;
    }
    ?&gt;
    <div class="wrap">
        <h1></h1>
        <form action="/ar/options.php/" method="post" data-trp-original-action="options.php">
            <?php
            // 输出设置字段、非ces等(需要与register_setting配合)
            settings_fields( 'my_plugin_options' );
            do_settings_sections( 'my-plugin-settings' );
            submit_button( '保存设置' );
            ?>
        <input type="hidden" name="trp-form-language" value="ar"/></form>
    </div>
    أنا لا أعرف ماذا أقول.

الأمان والتحقق من البيانات.

في تطوير الإضافات (البرامج الإضافية لموقع ووردبريس)، من الخطير جدًا معالجة مدخلات المستخدمين مباشرة دون إجراء عمليات التحقق من صحتها أو تهريب البيانات (escaping). يوفر ووردبريس مجموعة من الدوال لضم
التحقق (Validation): التحقق مما إذا كانت بيانات الإدخال تتوافق مع التنسيق المتوقع (مثل ما إذا كان عنوان بريد إلكتروني أو رقمًا).
التنظيف (Sanitization): تنظيف البيانات المدخلة وإزالة الأحرف غير الآمنة (مثل استخدام <). sanitize_text_field معالجة حقول النصوص.
الهروب (Escaping): عند إخراج البيانات إلى HTML أو JavaScript أو URL، يتم الهروب منها لمنع هجمات XSS (مثل استخدام <). esc_html, esc_js, esc_url)。

عند حفظ خيارات الإعدادات، يجب استخدام دالة التنظيف بالتأكيد:

$safe_value = sanitize_text_field( $_POST['my_field'] );
update_option( 'my_plugin_field', $safe_value );

تحميل السكريبتات وجداول الأنماط (Loading scripts and style sheets)

من أجل جعل واجهات البرامج الإضافية (الإضافات) سواء الأمامية أو الخلفية أكثر جمالاً، من الضروري تحميل ملفات CSS و JavaScript بشكل صحيح. يجب استخدام… wp_enqueue_script و wp_enqueue_style الدالة، وتأكد من تحميلها فقط في الصفحات التي تحتاجها.

القراءة الموصى بها إتقان الحقول المخصصة في WooCommerce: دليل متقدم للمطورين من الإنشاء إلى العرض

add_action( 'admin_enqueue_scripts', 'my_plugin_load_admin_assets' );
function my_plugin_load_admin_scripts( $hook ) {
    // 仅在我们的插件设置页面加载
    if ( 'toplevel_page_my-plugin-settings' != $hook ) {
        return;
    }
    wp_enqueue_style(
        'my-plugin-admin-style',
        plugins_url( 'css/admin-style.css', __FILE__ )
    );
    wp_enqueue_script(
        'my-plugin-admin-script',
        plugins_url( 'js/admin-script.js', __FILE__ ),
        array( 'jquery' ), // 依赖jQuery
        '1.0.0',
        true // 在底部加载
    );
}

نشر وصيانة الإضافات (Plugins)

بعد الانتهاء من التطوير، قد ترغب في مشاركة المنتج مع الآخرين أو تحويله إلى منتج تجاري. هذا يتطلب تحسين الكود، الاستعداد للتعامل مع لغات مختلفة (التدويل)، وإتباع إجراءات النشر السليمة.

التدويل والتوطين

لكي يتمكن المستخدمون حول العالم من استخدام الإضافة، من الضروري دعم اللغات المتعددة. يتم تحقيق ذلك عن طريق استخدام دوال الترجمة المتوفرة في ووردبريس. يجب أن يتم ترجمة جميع النصوص التي تحتاج إلى __() أو _e() تم تغليف الدالة (function) وتم تعريفها داخل رأس المكون الإضافي (plugin header).Text Domain

الاستضافة المشتركة InterServer
استضافة مشتركة $2.50 دولار أمريكي في الشهر، الشهر الأول $0.1 دولار أمريكي الرمز الترويجي tryinterserver، 461 نص برمجي للتطبيقات السحابية، تثبيت بنقرة واحدة.
طباعة '<h2>' . esc_html__( '设置', 'my-awesome-plugin' ) . '</h2>';
$button_text = __( '点击保存', 'my-awesome-plugin' );

ثم، باستخدام أداة مثل PoEdit، قم باستخراج جميع سلاسل النصوص المترجمة وإنشاء ملف منها..potمستندات، لكي يقوم المترجمون بإنشائها..poو.moملفات اللغة.

تحسين الكود والأداء

يجب أن يأخذ أي إضافة ممتازة في الاعتبار أداء النظام. يجب تجنب تنفيذ كل الكود في كل مرة يتم فيها تحميل الصفحة، ويجب ترتيب منطق الكود بحيث يتم تنفيذه في الأوقات المناسبة (عبر “الخطافات” أو hooks المناسبة). بالنسبة لعمليات الاستعلام المعقدة على قواعد البيانات، يُنصح باستخدام آليات التخزين المؤقت، مثل واجهة برمجة التطبيset_transient(), get_transient(), delete_transient()

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

register_uninstall_hook( __FILE__, 'my_plugin_uninstall' );
function my_plugin_uninstall() {
    // 删除插件创建的所有选项
    delete_option( 'my_plugin_option_1' );
    delete_option( 'my_plugin_option_2' );
    // 如果创建了数据库表,这里也需执行DROP TABLE语句
}

الملخصات

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

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

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

يجب أن تمتلك معرفة أساسية بلغة البرمجة PHP، حيث أن المنطق الأساسي للإضافة مكتوب بلغة PHP. بالإضافة إلى ذلك، من المهم أن تكون على دراية أساسية بلغات HTML وCSS وJavaScript لبناء واجهات المستخدم الأمامية وتحقيق التفاعلات بينها. والأهم من ذلك كله، أن تكون ملمًا بالمفاهيم الأساسية لبرنامج WordPress، مثل المقالات (Articles)، الصفحات (Pages)، أدوار المستخدمين (User Roles)، ونظام الخطافات الأساسي (Core Hooks) في البرنامج.

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

يُنصح بتفعيل وضع التصحيح (Debug Mode) في ووردبريس في بيئة التطوير.wp-config.phpفي الملف، سيتم…WP_DEBUGتم تعيين الثابت على قيمةtrueسيقوم هذا الإعداد بعرض أخطاء PHP وتحذيراتها وإشعاراتها على الشاشة. في الوقت نفسه، يمكن استخدامه…error_log()تقوم الدالة بكتابة معلومات التصحيح المخصصة في سجل الأخطاء الخاص بالخادم، أو باستخدام أدوات المطورين في المتصفح (مثل لوحات Console وNetwork) لفحص مشاكل طلبات JavaScript و AJAX.

كيف يتوافق مكوّني الإضافي مع المظهر أو المكوّنات الإضافية الأخرى؟

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

هل يجب تقديم الإضافات (البرامج الإضافية) إلى الدليل الرسمي للإضافات في ووردبريس؟

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