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

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

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

الهيكل الأساسي والمعايير لإضافات ووردبريس (WordPress Plugins)

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

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

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

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

قم بإنشاء ملف باسم “…” داخل دليل الإضافات (plugins directory). my-first-plugin.php ملف، وأضف المعلومات الرأسية التالية:

خادم ووردبريس من شركة 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:            你的名字
 * Author URI:        https://example.com
 * License:           GPL v2 or later
 * Text Domain:       my-first-plugin
 * Domain Path:       /languages
 */

اتبع أفضل الممارسات الأمنية.

يجب أن يتم تضمين كود جميع الإضافات (البرامج الإضافية) ضمن عمليات التحقق من الأمان، لمنع الوصول المباشر إليها. في الوقت نفسه، يجب استخدام بادئات فريدة لتسمية جميع الدوال (functions) والفئات (classes) والثوابت (constants)، لتجنب حدوث تعارض

في الملف الرئيسي للإضافة، يجب إضافة كود الحماية الأمنية مباشرة بعد التعليقات في البداية، واستخدام بادئة فريدة (مثل…) mfp_استخدم هذا الاسم لتسمية دالتك:

// 防止直接访问文件
if ( ! defined( 'ABSPATH' ) ) {
    exit;
}

// 使用唯一前缀定义一个函数
function mfp_display_greeting() {
    echo '<p>مرحبًا، أهلاً بك في استخدام أول إضافة (plugin) من تطويري!</p>';
}

تحقيق الوظيفة الأساسية: الإجراءات والفلاتر.

يعتمد آلية التوسعة الأساسية في ووردبريس على ما يُعرف بـ "الخطافات" (Hooks)، والتي تنقسم إلى نوعين: الإجراءات (Actions) والمرشحات (Filters). فهم هذه الخطافات واستخدامها بشكل صحيح أمر أساسي لتطوير الإضافات (Plugins).

استخدم خطافات الحركة لإضافة وظائف.

تسمح خطافات الأفعال (Action Hooks) بتنفيذ الكود الخاص بك في أوقات محددة أو عند حدوث أحداث معينة. على سبيل المثال، لإضافة نص في أسفل الصفحة، يمكنك استخدام هذه الخطافات. wp_footer الحركة.

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

قم بتثبيت الدالة التي تم تعريفها مسبقًا على… wp_footer على الخطاف:

// 将函数挂载到 wp_footer 动作钩子
add_action( 'wp_footer', 'mfp_display_greeting' );

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

استخدم خطافات المرشحات (filter hooks) لتعديل المحتوى.

تُستخدم “خطافات المرشحات” (filter hooks) لتعديل البيانات؛ فهي تتلقى قيمة معينة، تقوم بمعالجتها، ثم تعيدها. على سبيل المثال، يمكن استخدامها لتعديل اللاحقة الافتراضية لعناوين المقالات. the_title مرشحات.

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

قم بإنشاء دالة لتعديل عنوان المقالة، ثم أضفها إلى المرشح (الفلتر).

// 定义一个函数来修改文章标题
function mfp_modify_title( $title, $id = null ) {
    // 仅在前端修改非管理员页面的标题
    if ( ! is_admin() && in_the_loop() ) {
        $title .= ' - 来自我的插件';
    }
    return $title;
}
// 将函数挂载到 the_title 过滤器钩子,参数3是优先级,参数4是接受的参数个数
add_filter( 'the_title', 'mfp_modify_title', 10, 2 );

بناء واجهة إدارة الإضافات (Plugins)

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

إنشاء صفحة إعدادات الإضافة

الاستفادة من add_menu_page() أو add_options_page() يمكن للدوال أن تضيف صفحة إدارة لإضافتك، وعادةً ما تكون هذه الصفحة موجودة تحت قائمة “الإعدادات”.

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

قم بإنشاء دالة لتسجيل وإدارة القوائم (menus)، ثم قم بتثبيتها (mounting it) في المكان المناسب. admin_menu العملية:

// 添加插件设置页面到后台菜单
function mfp_add_admin_menu() {
    add_options_page(
        '我的第一个插件设置', // 页面标题
        '我的插件设置',       // 菜单标题
        'manage_options',     // 权限要求
        'my-first-plugin',    // 菜单slug
        'mfp_render_settings_page' // 用于渲染页面的回调函数
    );
}
add_action( 'admin_menu', 'mfp_add_admin_menu' );

// 渲染设置页面的回调函数
function mfp_render_settings_page() {
    ?&gt;
    <div class="wrap">
        <h1>إعدادات الإضافة الأولى الخاصة بي</h1>
        <form action="/ar/options.php/" method="post" data-trp-original-action="options.php">
            <?php
            settings_fields( 'mfp_settings_group' );
            do_settings_sections( 'my-first-plugin' );
            submit_button();
            ?>
        <input type="hidden" name="trp-form-language" value="ar"/></form>
    </div>
    أنا لا أعرف ماذا أقول.

خيارات التسجيل ومعالجة الإعدادات

يمكن لإعدادات ووردبريس (WordPress) التي تستخدم واجهة برمجة التطبيقات (API) أن تتعامل بشكل آمن مع عمليات تسجيل الخيارات (options) والتحقق من صحتها وتخزينها. يتطلب الأمر منك تحديد حقول الإعدادات (setting fields) والأقسام (

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

استمر في إضافة الكود التالي إلى الملف الرئيسي للإضافة (plugin main file) لتسجيل الإعدادات:

// 初始化插件设置
function mfp_settings_init() {
    // 注册一个新的设置组和选项
    register_setting( 'mfp_settings_group', 'mfp_settings', 'mfp_sanitize_settings' );

// 在插件设置页面添加一个节
    add_settings_section(
        'mfp_section_basic',
        '基本设置',
        null,
        'my-first-plugin'
    );

// 向节中添加一个字段
    add_settings_field(
        'mfp_greeting_text',
        '问候语文本',
        'mfp_greeting_text_render',
        'my-first-plugin',
        'mfp_section_basic'
    );
}
add_action( 'admin_init', 'mfp_settings_init' );

// 渲染问候语文本输入字段
function mfp_greeting_text_render() {
    $options = get_option( 'mfp_settings' );
    $value = isset( $options['greeting_text'] ) ? $options['greeting_text'] : '你好,世界!';
    echo '<input type="text" name="mfp_settings[greeting_text]" value="' . esc_attr( $value ) . '" class="regular-text">';
}

// 清理和验证设置输入
function mfp_sanitize_settings( $input ) {
    $sanitized = [];
    if ( isset( $input['greeting_text'] ) ) {
        $sanitized['greeting_text'] = sanitize_text_field( $input['greeting_text'] );
    }
    return $sanitized;
}

تدويل الإضافات والاستعداد للنشر.

لكي يتمكن المستخدمون حول العالم من استخدام الإضافة ونشرها في النهاية، ستحتاج إلى تنفيذ عمليات تدويل (internationalization) وتحسين الكود (code optimization).

تحقيق تدويل النصوص (Text Internationalization)

Using WordPress __()_e() استخدم دالات مثل getText() و setText() لتغليف جميع سلاسل النص التي تحتاج إلى ترجمة، وتحميل حقول النص بشكل صحيح.

قم بتعديل دالة الإخراج الخاصة بك بحيث تدعم الترجمة.

function mfp_display_greeting() {
    $options = get_option( ‘mfp_settings’ );
    $greeting = isset( $options[‘greeting_text’] ) ? $options[‘greeting_text’] : __( ‘你好,世界!’, ‘my-first-plugin’ );
    echo ‘<p>’ . esc_html( $greeting ) . ‘</p>’;
}

// 在插件加载时加载翻译文件
function mfp_load_textdomain() {
    load_plugin_textdomain( ‘my-first-plugin’, false, dirname( plugin_basename( __FILE__ ) ) . ‘/languages/’ );
}
add_action( ‘plugins_loaded’, ‘mfp_load_textdomain’ );

تحسين الكود وإنشاء حزم النشر (Optimizing code and creating release packages)

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

تأكد من أن الملف الرئيسي يحتوي على برنامج إزالة قياسي، يُستخدم لتنظيف خيارات قاعدة البيانات عندما يقوم المستخدم بحذف الإضافة. يتم تحقيق ذلك عن طريق تسجيل "خطاف إزالة" (uninstallation hook).

// 插件卸载时的清理操作
register_uninstall_hook( __FILE__, ‘mfp_uninstall’ );
function mfp_uninstall() {
    delete_option( ‘mfp_settings’ );
}

الملخصات

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

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

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

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

من المفيد جدًا أن تمتلك معرفة أساسية ببرمجة PHP، بما في ذلك فهم المتغيرات (variables)، الدوال (functions)، المصفوفات (arrays)، والتحكمات الشرطية (conditional statements). بالإضافة إلى ذلك، سيكون من المفيد أن يكون لديك معرفة أساسية بلغة HTML وCSS، وكذلك معرفة أساسية بكيفية استخدام منصة WordPress وهيكلها الخلفي (backend). سيكون امتلاك معرفة بالبرمجة الكائنية (Object-Oriented Programming – OOP) ميزة إضافية للتطور في مجال البرمجة.

我必须使用类(Class)来编写插件吗?

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

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

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

كيف يمكن ضمان الأمان أثناء تطوير الإضافات (plugins)؟

التدابير الرئيسية لضمان الأمان تشمل: التحقق دائمًا من مدخلات المستخدمين وتنقيتها (باستخدام…) sanitize_text_field(), esc_html(), wp_kses_post() (مثل الدوال المتعلقة بالانتظار)؛ يتم استخدامها في جميع عمليات الاستعلام عن البيانات من قواعد البيانات. $wpdb استخدموا طرق الكلاسات (class methods) واستفيدوا من أمر `prepare` لمنع حقن الكود الضار (SQL injection)؛ قوموا بتهريب جميع المحتويات الديناميكية المُعرضة على المتصفح (escape all dynamic content displayed to the browser)؛ واعتمدوا على الميزات المدمجة في ووردبريس مثل متغيرات التحقق (nonces) وفحوصات الصلاحيات (permission checks).current_user_can()) لحماية النماذج وطلبات AJAX.