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

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

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

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

إنشاء بيئة التطوير.

يعد توفر بيئة تطوير محلية فعالة أمراً بالغ الأهمية. يُفضل استخدام أدوات مثل XAMPP أو MAMP أو Local by Flywheel لإعداد خادم محلي بسرعة يشمل PHP و MySQL و Apache/Nginx. تسمح هذه الأدوات بمحاكاة البيئة الإنتاجية، مما يسمح لك بالتطوير والتصحيح دون تعطيل موقع الويب المنتج. في الوقت نفسه، اختر محررًا قويًا للشفرة، مثل Visual Studio Code أو PhpStorm، الذي يوفر تمييزًا رائعًا للصياغة واقتراحات للشفرة ودعمًا للتصحيح لـ PHP و HTML و JavaScript و CSS.

فهم البنية الأساسية للإضافات.

إضافات ووردبريس هي في الأساس واحدة أو أكثر من الإضافات الموجودة في /wp-content/plugins/ ملفات PHP الموجودة في الدليل. يحتاج كل مكون إلى ملف رئيسي على الأقل، وعادةً ما يكون اسم الملف فريدًا، على سبيل المثال: my-first-plugin.phpيحتوي رأس الملف الرئيسي على تعليق خاص يُسمى “معلومات رأس المكوّن”، وتستخدمه WordPress لتحديد مكوّنك وعرضه في لوحة التحكم. يجب أن يأخذ هيكل المكوّن الجيد في الاعتبار تنظيم شفرة المختلف الوظائف في مجلدات فرعية مختلفة، على سبيل المثال: /includes/ يُستخدم لتخزين ملفات الفئات الأساسية،/js/ و /css/ يُستخدم لتخزين موارد الواجهة الأمامية،/languages/ يُستخدم في تدوين الوثائق الدولية.

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

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

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

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

كتابة معلومات رأس الإضافة (Plugin Header Information)

يجب أن يحتوي الملف الرئيسي للإضافة على تعليقات رأس قياسيّة في البداية. توفر كتلة التعليقات هذه لـ WordPress بيانات وصفية حول اسم الإضافة ووصفها وإصدارها ومؤلفها وما إلى ذلك. فيما يلي مثال أساسي:

<?php
/**
 * Plugin Name: 我的第一个插件
 * Plugin URI:  https://yourwebsite.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/my-first-plugin.php بعد ذلك، اذهب إلى صفحة “الإضافات” في الواجهة الخلفية لـ WordPress، ويجب أن ترى إضافة جديدة باسم “My First Plugin” ويمكنك تفعيلها. في الوقت الحالي، لا تحتوي على أي وظائف.

تحقيق أول وظيفة بسيطة.

بعد تفعيل الإضافة، دعونا ننفذ وظيفة كلاسيكية: إضافة نص مخصص تلقائيًا في نهاية محتوى كل مقالة. سنستخدم the_content فلتر. قم بتعديل ملفك الرئيسي، وأضف الشفرة التالية أسفل معلومات الرأس:

/**
 * 在文章内容末尾添加自定义文本
 *
 * @param string $content 文章原始内容。
 * @return string 修改后的内容。
 */
function mfp_add_footer_text( $content ) {
    // 仅在主查询的单篇文章页面显示
    if ( is_single() &amp;&amp; in_the_loop() &amp;&amp; is_main_query() ) {
        $custom_text = '<p><em>شكرًا على القراءة! يقدم لكم هذا المقال [أول إضافة لديّ].</em></p>'مكان وضع النص في الصفحة: في نهاية المحتوى، بعد محتوى المقالة. تأكد من أن هذا النص لا يحتوي على أي روابط أو محتوى ترويجي. يجب أن يكون هذا النص مفيدًا للقراء ويجب أن يحتوي على معلومات حول الموضوع الذي تتحدث عنه في مقالتك.;

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

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

تطوير الوظائف الأساسية للإضافة.

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

إنشاء قائمة لإدارة المكونات الإضافية وصفحة للإعدادات.

يتطلب العديد من الإضافات تقديم خيارات التكوين للمستخدم. يتم تحقيق ذلك عادةً عن طريق إضافة صفحة قائمة إلى لوحة تحكم WordPress. فيما يلي مثال على إضافة صفحة قائمة رئيسية:

/**
 * 在后台管理菜单中添加一个顶级菜单项
 */
function mfp_add_admin_menu() {
    add_menu_page(
        '我的插件设置', // 页面标题
        '我的插件',     // 菜单标题
        'manage_options', // 权限要求
        'mfp-settings-page', // 菜单 slug
        'mfp_render_settings_page', // 用于渲染页面的回调函数
        'dashicons-admin-generic', // 图标(可选)
        80 // 菜单位置(可选)
    );
}
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( 'mfp-settings-page' );
            // 输出保存按钮
            submit_button( '保存设置' );
            ?>
        <input type="hidden" name="trp-form-language" value="ar"/></form>
    </div>
    أنا لا أعرف ماذا أقول.

هذا الكود يستخدم… add_menu_page أضافت الوظيفة عنصر قائمة جديدًا، وحددته. mfp_render_settings_page دالة لإنشاء صفحة HTML. ولإضافة حقول نموذج قابلة للحفظ إلى الصفحة، ستحتاج أيضًا إلى استخدامها بالتزامن مع ذلك. register_setting, add_settings_section و add_settings_field يتم استخدام وظائف مثل setState() و dispatch() لتسجيل وتعريف عناصر الإعداد.

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

استخدم البرمجة الموجهة للكائنات لتنظيم الشفرة.

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

class MyFirstPlugin {
    /**
     * 构造方法,用于初始化钩子
     */
    public function __construct() {
        add_action( 'init', array( $this, 'init' ) );
        add_filter( 'the_content', array( $this, 'modify_content' ) );
    }

/**
     * ‘init’ 钩子的回调函数
     */
    public function init() {
        // 插件初始化代码,例如注册短代码、自定义文章类型等
        load_plugin_textdomain( 'my-first-plugin', false, dirname( plugin_basename( __FILE__ ) ) . '/languages/' );
    }

/**
     * 修改文章内容的回调函数
     */
    public function modify_content( $content ) {
        // 类内部实现功能逻辑
        if ( is_single() ) {
            $content .= '<p>هذا المحتوى تم إضافته باستخدام طريقة من الفئة (class method).</p>';
        }
        return $content;
    }
}
// 实例化插件类
new MyFirstPlugin();

عن طريق تغليف الوظائف… MyFirstPlugin في هذا الفصل، تُجمع جميع الخصائص والأساليب ذات الصلة في نطاق واحد. استخدموا array( $this, ‘method_name’ ) يمكن للبنية النحوية تثبيت أساليب الفئة على خطافات WordPress. هذا النموذج هو الطريقة الموصى بها لإنشاء إضافات متوسطة إلى كبيرة الحجم.

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

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

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

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

يعد أمان المكونات الإضافية أولوية قصوى. لا تثق أبدًا في البيانات التي يُدخلها المستخدمون أو يتم استخراجها مباشرةً من قاعدة البيانات. يجب التحقق من صحة البيانات وتنظيفها وتحويلها قبل معالجتها.
* التحقق (Validation): التحقق مما إذا كانت البيانات تتوافق مع التنسيق المتوقع (مثل ما إذا كان عنوان بريد إلكتروني أو رقمًا). يمكن استخدام ذلك باستخدام filter_var أو ووردبريس. sanitize_* سلسلة من الوظائف.
* التنظيف (Sanitization): إزالة الأحرف غير الآمنة من البيانات قبل تخزينها في قاعدة البيانات أو استخدامها للإخراج. على سبيل المثال، استخدام sanitize_text_field مُعالجة الإدخال النصي.
* الهروب (Escaping): عند إخراج البيانات إلى HTML أو JavaScript أو URL، يجب هروبها حسب السياق لمنع هجمات عبر المواقع. WordPress تقدم هذا الخيار. esc_html, esc_js, esc_url و esc_attr وغيرها من الدوال.

على سبيل المثال، عند إخراج متغير تم الحصول عليه من قاعدة البيانات:

الاستضافة المشتركة InterServer
استضافة مشتركة $2.50 دولار أمريكي في الشهر، الشهر الأول $0.1 دولار أمريكي الرمز الترويجي tryinterserver، 461 نص برمجي للتطبيقات السحابية، تثبيت بنقرة واحدة.
// 假设 $user_input 是从数据库获取的文本
echo '<div class="message">'`. esc_html($user_input)`.'</div>';
// 或者用于 HTML 属性
echo '<input type="text" value="' . esc_attr( $user_input ) . '">';

تحسين الأداء وأفضل الممارسات

يجب أن يؤثر المكون الإضافي الممتاز على أداء الموقع بأقل قدر ممكن. اتبع أفضل الممارسات التالية:
* تحميل الموارد حسب الحاجة: استخدم wp_enqueue_script و wp_enqueue_style استخدم الدالات، وقم بتحميل ملفات CSS و JavaScript الخاصة بك فقط في الصفحات التي تحتاج إليها. من خلال wp_enqueue_scripts الهوك (الجزء الأمامي من النظام) و… admin_enqueue_scripts يتم تثبيته (في الخلفية) باستخدام "الخطاف".
* الاستخدام المعقول للخطافات: تجنب تنفيذ الكثير من الشفرات غير الضرورية في كل مرة يتم فيها تحميل الصفحة. قم بتوصيل وظائفك بالخطافات الأنسب واستخدم العلامات المشروطة (مثل <) is_admin(), is_single()يمكنك استخدام تعليمات "if" و"else" لتقييد نطاق تنفيذ الشفرة.
* تحسين استعلامات قاعدة البيانات: الحد من الاستعلامات SQL المباشرة قدر الإمكان، وتفضيل استخدام واجهة برمجة التطبيقات (API) الخاصة بـ WordPress (مثل WP_Query, get_postsإذا كان لا بد من إجراء استعلام مخصص، فتأكد من استخدام $wpdb تقوم بإنشاء الكائنات وإجراء عمليات البحث في الذاكرة المخزنة مسبقًا.
* تقديم خيارات التنظيف عند إلغاء التثبيت: ضع في اعتبارك ما إذا كان يلزم تنظيف البيانات التي أنشأها المكون الإضافي (مثل جداول قاعدة البيانات والخيارات وما إلى ذلك) عندما يحذف المستخدم المكون الإضافي. يمكن تحقيق ذلك عن طريق تسجيل مرحلة إلغاء التثبيت (في ملف منفصل).

الملخصات

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

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

هل يتطلب تطوير إضافات WordPress إتقانًا للغة PHP؟

على الرغم من أنه ليس ضروريًا أن تكون خبيرًا، إلا أنه يجب أن يكون لديك معرفة جيدة بـ PHP. يجب أن تفهم مفاهيم PHP مثل التركيب النحوي والوظائف والمصفوفات والبرمجة الموجهة للكائنات، لأن WordPress الأساسي والمكونات الإضافية والمظاهر مكتوبة جميعها باستخدام PHP. كما أن معرفة HTML وCSS وJavaScript أمرًا بالغ الأهمية لتطوير المكونات الإضافية التي تتضمن تفاعلًا في الواجهة الأمامية.

كيف يمكنني تصحيح أخطاء مكوّن WordPress الخاص بي؟

أولاً، تأكد من أنك قمت بتنفيذ الخطوات اللازمة في… wp-config.php قم بتفعيل وضع التصحيح الخاص بووردبريس (WordPress Debug Mode) داخل الملف. WP_DEBUG تم تعيين القيمة الثابتة إلى "true". وهذا سيؤدي إلى عرض أخطاء PHP وتحذيراتها وإشعاراتها على الشاشة أو تسجيلها في ملفات السجلات (log files). بالإضافة إلى ذلك، يتم استخدام… error_log يمكن استخدام وظائف أو أدوات مثل إضافة Query Monitor لتتبع قيم المتغيرات وسير التنفيذ. كما أن أدوات التطوير في المتصفح (علامتي Console و Network) ضرورية أيضًا لاكتشاف أخطاء جافا سكريبت وطلبات AJAX.

كيف يتوافق مكوّني الإضافي مع إصدارات WordPress المختلفة؟

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

كيف يمكنني تحقيق التدويل (Internationalization) لإضافتي (Plugin) الخاصة؟

يستخدم ووردبريس مكدس تقنيات GNU gettext لتحقيق الميزة الدولية (الترجمة إلى لغات أخرى). __() أو _e() استخدم دوال مثل `gettext()` لتغليف جميع النصوص التي تحتاج إلى الترجمة. بعد ذلك، قم باستخدام أداة إنشاء ملفات POT (مثل Poedit) لإنشاء قوالب الترجمة، حتى يتمكن المترجمون من إنشاء ملفات `.mo` و `.po` باللغة المطلوبة. أخيرًا، استخدم هذه الملفات لإجراء عملية الترجمة الفعلية. load_plugin_textdomain() يتم تحميل ملفات اللغة عندما يتم تهيئة الإضافة (البرنامج الإضافي).