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

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

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

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

إنشاء بيئة تطوير واختبار محلية

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

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

أبسط إضافة (plugin) لووردبريس (WordPress) يمكن أن تحتوي فقط على ملف رئيسي واحد. يجب أن يحتوي هذا الملف الرئيسي على تعليق خاص في بدايته (header comment)، يوضح لووردبريس المعلومات الأساسية عن الإضافة. على سبيل المثال، إضافة تُسمى…my-first-plugin.phpمحتوى الملف يمكن أن يكون كما يلي:

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

<?php
/**
 * Plugin Name:       我的第一个插件
 * Plugin URI:        https://example.com/my-first-plugin/
 * Description:       这是一个用于演示的简单插件。
 * Version:           1.0.0
 * Author:            你的名字
 * License:           GPL v2 or later
 * Text Domain:       my-first-plugin
 */

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

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

بناء أول إضافة (plugin) وظيفية لك

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

تعريف الدالة الرئيسية للإضافة (Plugin Main Function)

نحتاج إلى إنشاء دالة لتوليد وعرض معلومات حقوق النشر. سنسمي هذه الدالة…myplugin_add_copyright_textتقوم هذه الدالة بالحصول على معلومات المقال الحالي ودمجها في نص إعلان حقوق النشر.

function myplugin_add_copyright_text( $content ) {
    if ( is_single() ) {
        $current_year = date( 'Y' );
        $copyright_text = '<p class="myplugin-copyright">© '$current_year'. جميع الحقوق محفوظة. تم نشر هذا المقال لأول مرة على موقعي الإلكتروني.</p>';
        $content .= $copyright_text;
    }
    return $content;
}

استخدم الخطافات (hooks) لدمج الميزات مع ووردبريس (WordPress).

الدوال الفردية لا تتم تنفيذها تلقائيًا. نحتاج إلى استخدام “مخالب الفلترات” (Filter Hooks) في ووردبريس (WordPress) لـ “تثبيت” دالتنا قبل أن يتم عرض محتوى المقال. في هذه الحالة، سنستخدم…the_contentهذا المرشح (الفلتر).

add_filter( 'the_content', 'myplugin_add_copyright_text' );

قم بدمج رأس المستند المذكور أعلاه والشفرتين في نفس الملف.phpفي الملف، تم إنشاء إضافة (plugin) تحتوي على وظائف أساسية؛ فهي تقوم بإضافة جزء يحتوي على معلومات حقوق النشر تشير إلى السنة الحالية بعد نص المقال الفردي.

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

إضافة نمط أساسي إلى محتوى الإخراج.

لجعل معلومات حقوق النشر تبدو أكثر جمالاً، يمكننا إضافة بعض أنماط CSS البسيطة إليها. أفضل ممارسة هي…wp_enqueue_styleنحتاج إلى إنشاء دالة لتنظيم ترتيب تحميل ملفات الأنماط (style sheets) بحيث يتم تحميلها فقط عند الحاجة إليها.style.cssوقم بتسجيله في ملف الإضافة الرئيسية.
أضف الكود التالي إلى ملف الإضافة الرئيسي:

function myplugin_enqueue_styles() {
    wp_enqueue_style( 'myplugin-style', plugins_url( 'css/style.css', __FILE__ ) );
}
add_action( 'wp_enqueue_scripts', 'myplugin_enqueue_styles' );

ثم قم بإنشاء مجلد داخل دليل الإضافات (plugins directory).css/style.cssملف، وأضف الأنماط:

.myplugin-copyright {
    font-size: 0.9em;
    color: #666;
    border-top: 1px solid #eee;
    padding-top: 10px;
    margin-top: 20px;
}

تنفيذ خيارات تكوين الإضافة (Implementing plugin configuration options)

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

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

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

أولاً، نحتاج إلى إضافة بند فرعي إلى قائمة “الإعدادات” داخل واجهة إدارة ووردبريس. ولتحقيق ذلك، يجب استخدام…add_options_pageدالة.

function myplugin_add_settings_page() {
    add_options_page(
        '版权插件设置', // 页面标题
        '版权设置',     // 菜单标题
        'manage_options', // 权限
        'myplugin-settings', // 菜单slug
        'myplugin_render_settings_page' // 用于输出页面内容的回调函数
    );
}
add_action( 'admin_menu', 'myplugin_add_settings_page' );

إعدادات التسجيل، الكتل، والحقول

يوفر ووردبريس واجهة برمجة التطبيقات (API) للإعدادات (Settings API) لمعالجة خيارات المستخدم بطريقة آمنة وسهلة. نحن بحاجة إلى تسجيل مجموعة إعدادات، وخيار إعدادات فعلي (يتم تخزينه في قاعدة البيانات)، بالإضافة إلى حقل (مربع إدخال في النموذج).

function myplugin_register_settings() {
    register_setting( 'myplugin_settings_group', 'myplugin_copyright_text' );
    add_settings_section( 'myplugin_main_section', '主要设置', null, 'myplugin-settings' );
    add_settings_field( 'myplugin_text_field', '版权文本', 'myplugin_render_text_field', 'myplugin-settings', 'myplugin_main_section' );
}
add_action( 'admin_init', 'myplugin_register_settings' );

// 渲染文本字段的函数
function myplugin_render_text_field() {
    $option_value = get_option( 'myplugin_copyright_text', '© [year] 版权所有。本文首发于我的网站。' );
    echo '<input type="text" name="myplugin_copyright_text" value="' . esc_attr( $option_value ) . '" class="regular-text" />'echo '<p class="description">يمكنك استخدام الرموز المحلية (المكانات الفارغة) (%s، %1$s، {{var}}) في نصوصك. <code data-no-auto-translation="">[year]</code> يُستخدم للدلالة على السنة الحالية.</p>';
}

من بينها،myplugin_render_settings_pageالدالة مسؤولة عن إخراج هيكل نموذج HTML لصفحة الإعدادات بأكملها.

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

قم بتعديل الدالة الرئيسية لدعم النصوص الديناميكية.

الآن، نحتاج إلى تعديل الدالة الرئيسية الأصلية.myplugin_add_copyright_textدع البرنامج يقرأ النص الذي حدده المستخدم من قاعدة البيانات، ويقوم بتحليل الرموز الاستبدالية (%s، %1$s، {{var}}، :name) الموجودة في النص.

function myplugin_add_copyright_text( $content ) {
    if ( is_single() ) {
        $text = get_option( 'myplugin_copyright_text', '© [year] 版权所有。本文首发于我的网站。' );
        $text = str_replace( '[year]', date( 'Y' ), $text );
        $copyright_text = '<p class="myplugin-copyright">'. $text '.'</p>';
        $content .= $copyright_text;
    }
    return $content;
}

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

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

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

تم تنفيذ عملية التعبئة والنشر وفقًا للمعايير المحددة.

فيwp-content/plugins/داخل المجلد، يجب أن يكون الإضافة الخاصة بك موجودة في مجلد منفصل، على سبيل المثال:my-first-plugin/عادةً ما يحتوي هذا المجلد على ملف الإضافة الرئيسية على الأقل.my-first-plugin.phpواحدREADME.txt(وصف الإضافة وطريقة التثبيت) بالإضافة إلى المشاكل أو العيوب المحتملة.assets(الصورة)includes(ملف PHP إضافي)jscssقم بإنشاء الدلائل الفرعية المطلوبة، وتأكد من أن هيكل الملفات واضح ومنظم.

إذا كنت تخطط لتقديم الإضافة (البرنامج الإضافي) إلى الدليل الرسمي للإضافات في ووردبريس (WordPress Plugin Directory)، فيجب عليك الالتزام بشكل صارم بالمتطلبات والإرشادات الخاصة به.دليل المطورينتشمل هذه المتطلبات معايير الكود، والأمان، والتوافق مع الأنظمة الأخرى، بالإضافة إلى استخدام أداة Subversion (SVN) لإدارة إصدارات الكود.

ضمان أمان الإضافات (البرامج الإضافية)

الأمان أمر بالغ الأهمية. يجب دائمًا التحقق من المدخلات الخاصة بالمستخدمين والبيانات الديناميكية، وتنقيتها، وتهيئتها بشكل صحيح (عن طريق استخدام علامات التهيئة المناسبة).
١. التحقق (Validation): فحص ما إذا كانت البيانات تتوافق مع الصيغة المتوقعة (مثل ما إذا كانت عنوان بريد إلكتروني أو رقم).
٢. التنقية (Sanitization): قبل تخزين البيانات في قاعدة البيانات أو استخدامها في عمليات أخرى، يجب إزالة الأحرف غير الآمنة منها. بالنسبة لمدخلات النماذج (form inputs)، يتم استخدام طرق معينة لتنفيذ عملsanitize_text_fieldأوsanitize_textarea_field
٣. التهريب (Escaping): عند إخراج البيانات من قاعدة البيانات إلى صفحة HTML، يجب التأكد من تحويل الأحرف الخاصة بشكل صحيح لمنع هجمات XSS. استخدم الطرق المناسبة لتنفيذ ذلك.esc_htmlesc_attrأوwp_kses_post
على سبيل المثال، عند إظهار خيارات الإعدادات في النموذج، استخدمنا…esc_attr

echo '<input ... value="' . esc_attr( $option_value ) . '" ... />';

تخطيط مسار التحديثات المستقبلية

قم بتحديد رقم إصدار واضح للإضافة الخاصة بك (مثل 1.0.0)، واتبع نظام التحكم في الإصدارات المعتمد على المعاني (semantic versioning). وفي كل مرة تقوم فيها بتحديث الإضافة، قم بتحديث التعليقات في بداية الملف الرئيVersionمعلومات.
إذا كانت هناك حاجة لتحديث هيكل قاعدة البيانات أو نقل البيانات عند تحديث الإضافة، فيمكن استخدام آلية الترقية الخاصة بووردبريس. يمكنك المقارنة…get_option( ‘myplugin_version’ )يتم مقارنة رقم الإصدار القديم المخزن مع رقم الإصدار الحالي، وعند اكتشاف أي تغيير في الإصدار، يتم تنفيذ مهمة الترقية.
الحفاظ على توافق الإضافات مع أحدث إصدارات منصة ووردبريس (WordPress) ولغة البرمجة PHP، وإجراء الاختبارات بشكل دوري، والاستمرار في التحسين بناءً على ملاحظات المستخدمين.

الملخصات

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

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

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

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

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

هناك عدة طرق فعالة لتصحيح الأخطاء (التصحيح) أثناء تطوير إضافات ووردبريس (WordPress plugins). أولاً، تأكد من أنك…wp-config.phpتم تفعيل الملف.WP_DEBUGوWP_DEBUG_LOGبهذه الطريقة، سيتم تسجيل الأخطاء والمعلومات./wp-content/debug.logفي الملفات، يجب تجنب عرض المحتوى مباشرةً أمام المستخدمين. ثانيًا، يمكن استخدام هذه الطريقة على نطاق واسع.error_log()تقوم الدالة بطباعة معلومات المتغيرات في السجل (اللوغ). بالإضافة إلى ذلك، فإن استخدام أدوات المطورين في المتصفح (مثل تبويب “الكونسول” وتبويب “الشبكة”) لفحص أخطاء JavaScript الخاصة بالواجهة الأمامية وطلبات الـ API، بالإضافة إلى استخدام بيئات التطوير المتخصصة مثل PHPStorm وVS Code لتصحيح الأخطاء عبر نقاط التوقف (breakpoints)، تعتبر وسائل فعالة للغاية.

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

بالتأكيد يمكن ذلك. يمكن لإضافات ووردبريس (Plugins) استدعاء خدمات خارجية (APIs) من جهات ثالثة، مثل خدمات التنبؤ بالطقس، ومنصات التواصل الاجتماعي، وبوابات الدفع، وما إلى ذلك. عند القيام بذلك، يجب استخدام الدوال المتاحة في ووردبريس للتعامل مع خدمات HTTP، مثل…wp_remote_get()wp_remote_post()هي أفضل من مكتبات cURL الأصلية في PHP، أو…file_get_contentsأكثر أمانًا، ويحتوي على آليات مدمجة مثل التوقيت الأقصى وإعادة المحاولة. يجب التعامل بشكل صحيح مع حالات فشل استدعاءات الواجهة البرمجية التطبيقية (مثل تجاوز الوقت المسموح أو عودة رموز خطأ)، ويجب أيضًا التحقق بدقة من البيانات المرتدة

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

يستخدم WordPress مكدس تقنيات GNU gettext لتحقيق التدويل (i18n) والتكييف المحلي (localization). في إضافاتك، يجب أن يتم تغليف جميع النصوص التي تحتاج إلى ترجمة باستخدام دوال محددة.__('文本', 'my-plugin-textdomain')والتي تُستخدم لإرجاع السلسلة المترجمة._e('文本', 'my-plugin-textdomain')يُستخدم للإخراج المباشر. يجب عليك تعريفه في بداية ملف الإضافة (plugin file).Text Domainواستخدم أيضًا…load_plugin_textdomain()تعمل الدوال في الأوقات المناسبة (مثل…).initيتم تنفيذ خطوة تحميل ملفات الترجمة، ثم استخدام أداة مثل Poedit لإنشاء الترجمات النهائية..potملف قالب، يُستخدم من قبل المترجمين لإنشاء نسخ بلغات مختلفة..poو.moملف.

ما الذي يجب الانتباه إليه عند تطوير إضافات تجارية؟

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