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

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

لماذا يجب عليك تطوير مكون WordPress الخاص بك؟

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

بالنسبة للمطورين، تعلم تطوير الإضافات (plugins) يعتبر وسيلة ممتازة لفهم بنية ووردبريس (WordPress) بشكل أعمق. ستتعرف على مفهوم “خطافات الإجراءات” (action hooks).add_actionمخالب المرشحات (Filter Hooks)add_filterالكود المختصرadd_shortcodeمفاهيم أساسية مثل هذه… إتقان هذه المعرفة لا يسمح لك فقط بإنشاء إضافات (plugins)، بل يمكّنك أيضًا من تخصيص المواضيع (themes) والإضافات الحالية بشكل أكثر كفاءة.

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

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

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

بناء بيئة تنمية محلية

ننصح باستخدام برامج الخوادم المحلية مثل Local by Flywheel أو XAMPP أو MAMP، حيث يمكنها تهيئة بيئة تشغيل لـ WordPress تحتوي على Apache وMySQL وPHP بسرعة على جهاز الكمبيوتر الخاص بك. مقارنةً بالخوادم عبر الإنترنت، يتيح التطوير المحلي إمكانية إجراء الاختبارات والتصحيحات بسرعة، دون القلق من التأثير على الموقع الإلكتروني الحقيقي.

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

بعد تثبيت ووردبريس محليًا، ستحتاج إلى…wp-content/pluginsقم بإنشاء مجلد خاص داخل المجلد الرئيسي لقاعدة البيانات الخاصة بك لاحتواء الإضافة (البرنامج الإضافي) الجديدة الخاصة بك. يُنصح باستخدام اسم إنجليزي قصير ومكون من أحرف صغيرة وخالٍ من المسافmy-first-plugin

فهم الهيكل الأساسي للإضافات (Plugins)

أبسط إضافة (plugin) لووردبريس (WordPress) يمكن أن تتكون من ملف رئيسي واحد فقط. يجب أن يحتوي هذا الملف على تعليقات خاصة في بدايته تُعرف بـ “التعليقات الرأسية للإضافة” (plugin header comments)، ومن خلالها يتعرف ووردبريس على معلومات الإضافة. كما يجب تطبيق إجراءات أمنية لحماية الوصول المباشر إلى هذا الملف، وعادةً مABSPATHهل يتم تعريف الثوابت ( constants) بهدف تحقيق (implementation) شيء ما؟

فيما يلي مثال على ملف رئيسي لإضافة (plugin) مُبسط للغاية؛ يمكن تسمية هذا الملف…my-first-plugin.phpوضعه داخل المجلد الذي تم إنشاؤه للتو:

<?php
/**
 * Plugin Name:       我的第一个插件
 * Plugin URI:        https://yourwebsite.com/my-first-plugin
 * Description:       这是一个用于学习的入门级WordPress插件。
 * Version:           1.0.0
 * Author:            你的名字
 * License:           GPL v2 or later
 */

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

ضع المجلد الذي يحتوي على هذا الملف في المكان المناسب.wp-content/pluginsبعد إضافة الملف إلى المجلد المناسب، سيظهر في صفحة “الإضافات” (Plugins) داخل واجهة ووردبريس الخلفية، ويمكنك تفعيله من هناك.

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

إنشاء أول ميزة أساسية (Core Feature)

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

استخدم المرشحات لتعديل محتوى المقال.

يوفر ووردبريس عددًا كبيرًا من "خطافات المرشحات" (Filter Hooks)، والتي تسمح لك بتعديل البيانات قبل حفظها في قاعدة البيانات أو عرضها في المتصفح. لتعديل محتوى المقالات، يمكننا استخدام هذه الخطافات.the_contentمرشحات.

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

استضافة.كوم استضافة مشتركة
أداء عالٍ مع وحدات المعالجة المركزية AMD EPYC، ووحدات تخزين NVMe SSD وLiteSpeed، ودعم داخلي متخصص على مدار الساعة طوال أيام الأسبوع، وتدابير أمنية متقدمة بما في ذلك SSL، وقوة الغاشمة، والحماية من البرامج الضارة والحماية من DDoS، وتوفير ما يصل إلى 731 تيرابايت 4 تيرابايت
// 定义向文章内容追加文本的函数
function my_first_plugin_add_text_to_content( $content ) {
    // 确保只在主循环的单篇文章页面执行
    if ( is_single() &amp;&amp; in_the_loop() &amp;&amp; is_main_query() ) {
        $additional_text = '<p><em>شكرًا لكم على قراءة هذا المقال! تم تقديم الدعم لهذا المقال بواسطة “أول إضافة لي” (My First Plugin).</em></p>';
        $content .= $additional_text;
    }
    return $content;
}
// 将函数挂载到‘the_content’过滤器上
add_filter( 'the_content', 'my_first_plugin_add_text_to_content' );

تقوم هذه الدالة أولاً بسلسلة من التحققات المشروطة للتأكد من أن النص الإضافي يظهر فقط على صفحات المقالات الفردية، ولا يؤثر على الصفحة الرئيسية أو صفحات الأرشيف أو الصفحات الأخرى. بعد ذلك، تقوم بإضافة فقرة HTML مخصصة إلى المحتوى الأصلي.$contentبعد المتغير، يتم إرجاع المحتوى المعدل.

إنشاء صفحة إعدادات إدارية بسيطة

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

أولاً، استخدم.add_actionيقوم الخيار “الخطاف” (Hook) بإضافة صفحة قائمة فرعية إلى قائمة المسؤولين (Administrator Menu).

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

// 创建管理菜单
function my_first_plugin_add_admin_menu() {
    add_options_page(
        '我的第一个插件设置', // 页面标题
        '我的插件设置',       // 菜单标题
        'manage_options',     // 所需权限
        'my-first-plugin',    // 菜单slug
        'my_first_plugin_settings_page' // 显示页面的回调函数
    );
}
add_action( 'admin_menu', 'my_first_plugin_add_admin_menu' );

ثم، قم بتعريف دالة الاستدعاء الخاصة بصفحة إعدادات العرض (display settings page callback function).my_first_plugin_settings_pageوكذلك معالجة منطق حفظ النموذج:

// 设置页面的HTML内容
function my_first_plugin_settings_page() {
    ?&gt;
    <div class="wrap">
        <h2>إعدادات الإضافة الأولى الخاصة بي</h2>
        <form method="post" action="/ar/options.php/" data-trp-original-action="options.php">
            
        <input type="hidden" name="trp-form-language" value="ar"/></form>
    </div>
    &lt;?php
}

// 注册设置、区域和字段
function my_first_plugin_settings_init() {
    register_setting( &#039;my_first_plugin_settings_group&#039;, &#039;my_first_plugin_custom_text&#039; );

add_settings_section(
        &#039;my_first_plugin_section&#039;,
        &#039;自定义文本设置&#039;,
        null,
        &#039;my-first-plugin&#039;
    );

add_settings_field(
        &#039;my_first_plugin_text_field&#039;,
        &#039;要在文末添加的文本&#039;,
        &#039;my_first_plugin_text_field_render&#039;,
        &#039;my-first-plugin&#039;,
        &#039;my_first_plugin_section&#039;
    );
}
add_action( &#039;admin_init&#039;, &#039;my_first_plugin_settings_init&#039; );

// 渲染文本输入字段
function my_first_plugin_text_field_render() {
    $option = get_option( &#039;my_first_plugin_custom_text&#039;, &#039;感谢您阅读这篇文章!本文由“我的第一个插件”提供支持。&#039; );
    echo &#039;<textarea name="my_first_plugin_custom_text" rows="3" cols="50">' . esc_textarea( $option ) . '</textarea>';
}

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

الاستضافة المشتركة InterServer
استضافة مشتركة $2.50 دولار أمريكي في الشهر، الشهر الأول $0.1 دولار أمريكي الرمز الترويجي tryinterserver، 461 نص برمجي للتطبيقات السحابية، تثبيت بنقرة واحدة.
function my_first_plugin_add_text_to_content( $content ) {
    if ( is_single() &amp;&amp; in_the_loop() &amp;&amp; is_main_query() ) {
        $custom_text = get_option( 'my_first_plugin_custom_text', '' );
        if ( ! empty( $custom_text ) ) {
            $additional_text = '<p><em>'`. wp_kses_post($custom_text)`.'</em></p>';
            $content .= $additional_text;
        }
    }
    return $content;
}

تحضيرات أمان الإضافات، وتحسين أدائها، وتوزيعها

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

التحقق من صحة البيانات، التهريب (التحويل الخاص بالبيانات)، والأمان

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

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

مع زيادة عدد وظائف الإضافات (البرامج الإضافية)، يصبح من الصعب إدارة كل الكود الموجود في ملف واحد رئيسي. الممارسة الجيدة هي تقسيم الكود حسب الوظيفة إلى ملفات منفصلة. على سبيل المثال، يمكنك إنشاء…includes/admin/يحتوي المجلد على جميع الكودات المتعلقة بواجهة الإدارة الخلفية.includes/public/يحتوي المجلد على كود وظائف الواجهة الأمامية (الفرينت إند).includes/class-*.phpتخزين تعريفات الفئات (Class Definitions).

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

أنت على وشك نشر إضافتك (البرنامج الإضافي) الخاصة.

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

الملخصات

من خلال هذا الدليل، أكملنا عملية إنشاء إضافة ووردبريس متكاملة الوظائف وتحتوي على واجهة إدارة من الصفر. لقد تعلمنا الهيكل الأساسي للإضافات، وكيفية التفاعل مع نواة ووردبريس باستخدام ميزات “الأفعال” (actions) و“خطافات المرشحات” (filter hooks)، وكيفية إنشاء صفحات الإدارة، بالإضافة إلى فهم أهمية أمان الإضافات وتنظيمها. جوهر تطوير الإضافات يكمن في فهم بنية ووردبريس المبنية على الأحداث (event-driven architecture)، وتعلم كيفية إدراج الكود المخصص في الأوقات المناسبة. باستخدام هذه الأساسيات، يمكنك المضي قدمًا لاستكشاف مواضيع أكثر تقدمًا مثل أنواع المقالات المخصصة، والبيانات الوصفية (metadata)، ونقاط نهاية واجهة برمجة التطبيقات الخدمية (REST API endpoints)، وإنشاء جداول قواعد البيانات، وبذلك بناء إضافات متقدمة ومتخصصة ذات وظائف قوية.

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

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

من المهم جدًا أن تتقن القواعد الأساسية للغة PHP ومفاهيم البرمجة الكائنية، بالإضافة إلى امتلاك معرفة أساسية بلغات HTML وCSS وJavaScript. سيكون من المفيد أيضًا أن تكون على دراية بالعمليات الأساسية لبرنامج WordPress ومفاهيمه الأساسية، مثل المقالات والصفحات وأنظمة التصنيف. الأهم من ذلك كله، هو فهم آلية “الخطافات” (Actions and Filters) في WordPress، والتي تمثل الطريقة الرئيسية لتفاعل الإضافات (Plugins) مع نظام WordPress.

ما الفرق بين وظائف الإضافات (plugins) والقوالب (themes)، وكيف يمكن اختيار الأنسب لاحتياجات المستخدم؟

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

هل يمكنني إنشاء عدة ملفات PHP داخل إضافة واحدة؟

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

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

الطريقة الشائعة المستخدمة في التصحيح أثناء تطوير ووردبريس هي تفعيل أداة التصحيح (debugging tools).WP_DEBUGيمكنك القيام بذلك على الموقع الإلكتروني.wp-config.phpفي الملف، سيتم…define( 'WP_DEBUG', true );سيؤدي هذا إلى عرض جميع أخطاء PHP والتحذيرات والإشعارات على الشاشة. والطريقة الأكثر أمانًا هي أيضًا تعيينWP_DEBUG_LOGلأجلtrueتسجيل الأخطاء إلىwp-content/debug.logالملف موجود هناك. بالإضافة إلى ذلك، يمكن أن يساعد استخدام أدوات مطوري المتصفحات وأدوات مراقبة الاستعلامات (Query Monitor) وغيرها من أدوات التصحيح في تحسين الكفاءة بشكل كبير.

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

يعتمد الأمر على الجمهور المستهدف. عادةً، يُنصح بأن يكون المنتج متوافقًا على الأقل مع أول نسختين من الإصدارات الرئيسية الحالية. يمكنك الاطلاع على الإحصائيات الرسمية لووردبريس لمعرفة توزيع الإصدارات. في الكود، يمكنك استخدام جمل الشرط (conditional statements) لتحقيقfunction_exists()للتحقق مما إذا كانت دالة معينة أو فئة معينة متاحة، وبالتالي توفير التوافق مع الإصدارات السابقة (backward compatibility)، يمكن استخدام أدوات أو كود مخصص في الإضافة (plugin).readme.txtفي الملف، من الضروري الإشارة بوضوح إلى إصدار ووردبريس الذي تم اختباره وتأكيد أنه يعمل بشكل صحيح.