بيئة تطوير إضافات ووردبريس والاستعدادات الأساسية
قبل البدء في كتابة الكود، تحتاج إلى بيئة تطوير محلية مناسبة. عادةً ما تتضمن هذه البيئة خادمًا محليًا (مثل XAMPP أو MAMP أو Local by Flywheel)، ومحرر كود (مثل VS Code أو PHPStorm)، بالإضافة إلى نسخة من WordPress مثبتة لأغراض الاختبار. تأكد من أن إصدار PHP الذي تستخدمه متوافق مع الإصدار الموصى به رسميًا من قبل WordPress.
جوهر أي إضافة (plugin) لووردبريس (WordPress) هو الكود البرمجي الذي يقع في ملف معين داخل المجلد الرئيسي للإضافة. هذا الملف عادةً ما يحمل اسم “core.php” أو اسمًا مشابهًا، ويحتوي على الوظائف الأساسية الت/wp-content/plugins/المجلد الموجود داخل الدليل… اسم هذا المجلد يمثل معرف الإضافة الخاصة بك، ومن الأفضل استخدام أحرف صغيرة وأرقام وعلامات الربط (-) في تكوين الاسم. يجب أن يحتوي هذا المجلد على ملف PHP رئيسي يحمل نفس اسم المجلد نفسه.my-first-plugin.phpهذا الملف هو نقطة الدخول إلى الإضافة (plugin)، ويحتوي على معلومات الإضافة الأساسية (metadata).
قم بإنشاء ملف الإضافة (plugin) الخاص بك الأول.
دعونا نبدأ بإنشاء أبسط إضافة (plugin) ممكنة، وهي إضافة ستعرض رسالة ترحيب في واجهة إدارة الموقع الإلكتروني.
القراءة الموصى بها تحليل متعمق لمكوّن WooCommerce الإضافي: دليل كامل من الإعدادات الأساسية إلى التخصيص المتقدم.。
كتابة تعليقات في رأس الإضافة (Plugin Header Comments)
يجب أن يبدأ كل إضافة (plugin) لـ WordPress بتعليقات رأسية (header comments) محددة، حيث يقوم WordPress بقراءة هذه المعلومات لتحديد الإضافة وعرضها بشكل صحيح. في مجلد الإضافات الخاص بك (مثلاً…my-first-pluginفي الملف (%)، قم بإنشاء الملف الرئيسي.my-first-plugin.phpوأضف الكود التالي:
<?php
/**
* Plugin Name: 我的第一个WordPress插件
* 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
*/ بعد حفظ الملف، قم بتسجيل الدخول إلى واجهة خلفية WordPress الخاصة بك، ثم اذهب إلى صفحة “الإضافات” (Plugins). يجب أن ترى إضافة “My First WordPress Plugin” موجودة في قائمة الإضافات. في هذه المرحلة، يمكنك تفعيلها، على الرغم من أنها لا تحتوي على أي وظائف بعد.
إضافة الوظيفة الأولى للإضافة.
الآن، دعونا نضيف ميزة بسيطة لهذا الإضافة: عرض إشعار إداري مخصص في الجزء العلوي من واجهة الإدارة. سنستخدم ميزات ووردبريس (WordPress) لتحقيق ذلك.admin_noticesخطاف.
في الملف الرئيسيmy-first-plugin.phpأسفل تعليقات الرأس (header comments)، أضف الكود التالي:
// 在管理后台添加一个欢迎提示
function my_first_plugin_admin_notice() {
?>
<div class="notice notice-success is-dismissible">
<p>مرحبًا بكم في استخدام “أول إضافة WordPress الخاصة بي”! لقد تم تفعيل الإضافة بنجاح.</p>
</div>
<?php
}
add_action( 'admin_notices', 'my_first_plugin_admin_notice' ); هذا القطعة من الكود تعرف اسمًا معينًا…my_first_plugin_admin_noticeهناك دالة تقوم بإخراج قطعة من الكود HTML، والتي تُستخدم لعرض نافذة تنبيه ناجحة يمكن إغلاقها.add_action()تقوم الدالة بـ “تثبيت” هذه الدالة المخصصة في نظام ووردبريس (WordPress).admin_noticesهذا الإجراء مرتبط بخيار معين؛ قم بحفظ الملف ثم قم بتحديث واجهة خلفية ووردبريس (WordPress backend)، وسوف تتمكن بعد ذلك من رؤية رسالة الترحيب الخضراء في أعلى الصفحة.
القراءة الموصى بها دليل عملي لبناء موقع إلكتروني: عملية تطوير كاملة من الصفر إلى الإطلاق، مع دليل لاختيار التقنيات المناسبة.。
فهم الآليات الأساسية لإضافات ووردبريس: الخطافات (Hooks) والمرشحات (Filters)
جوهر تطوير إضافات ووردبريس (WordPress plugins) يكمن في التفاعل مع نواة ووردبريس نفسها، ويتم تحقيق ذلك بشكل أساسي من خلال آلية تُعرف باسم “الخطافات” (hooks). تنقسم الخطافات إلى نوعين: الأفعال (actions) والمرشحات (filters).
استخدام خطافات الأفعال (Action Hooks)
تسمح خيوط الأعمال (Action Hooks) بإدخال كود مخصص في نقاط زمنية محددة أثناء تشغيل ووردبريس، تمامًا كما استخدمناها للتو.admin_noticesمثال آخر شائع هو…initالهاك (Hook)، يتم تفعيله أثناء تهيئة ووردبريس (WordPress)، وغالبًا ما يُستخدم لتسجيل أنواع المقالات المخصصة أو التصنيفات (Categories).
على سبيل المثال، يمكننا تحديد قيمة لخيار معين عند تهيئة الإضافة (البرنامج الإضافي).
function my_first_plugin_set_default_option() {
// 如果选项不存在,则添加它
if ( false === get_option( 'my_first_plugin_greeting' ) ) {
add_option( 'my_first_plugin_greeting', 'Hello from my plugin!' );
}
}
add_action( 'init', 'my_first_plugin_set_default_option' ); استخدام خطافات المرشحات (Filter Hooks)
تسمح خيوط الفلاتر (filter hooks) بتعديل البيانات التي يتم نقلها خلال العملية. على سبيل المثال،the_contentتسمح لك أداة التصفية بتعديل محتوى النص الرئيسي للمقالات. يمكننا استخدامها لإضافة معلومات حقوق النشر تلقائيًا في نهاية كل مقال.
function my_first_plugin_add_copyright( $content ) {
// 仅对主循环中的单篇文章生效
if ( is_single() && in_the_loop() && is_main_query() ) {
$copyright = '<p><em>هذا المقال محمي بحقوق الطبع والنشر؛ يرجى الإشارة إلى المصدر عند إعادة نشره.</em></p>';
$content .= $copyright;
}
return $content;
}
add_filter( 'the_content', 'my_first_plugin_add_copyright' ); في هذا المثال، الدالةmy_first_plugin_add_copyrightتلقي النسخة الأصلية$contentبعد إجراء التحقق من الشروط (للتأكد من أن هذا التغيير ينطبق فقط على صفحة المقال الفردي)، تم إضافة قطعة من الكود HTML في نهاية المقال. وفي النهاية، يجب تطبيق التعديلات على المحتوى بشكل نهائي.$contentالعودة.
بناء إضافات أكثر تعقيدًا: كود مختصر وصفحات إعدادات
عادةً ما يحتاج الإضافة (plugin) الذي يحتوي على ميزات كاملة إلى توفير واجهة تفاعلية للمستخدم (مثل أكواد قصيرة) بالإضافة إلى إعدادات خلفية (مثل صفحات التهيئة).
القراءة الموصى بها أداة قوية لتحسين محرك البحث: بناء استراتيجية تحسين محرك البحث لموقع WordPress من الصفر.。
إنشاء رموز قصيرة مخصصة
تسمح الرموز المختصرة (الكودات القصيرة) للمستخدمين باستخدام علامات بسيطة (مثل…)[my_greeting]يمكن إدراج وظائف الإضافات (plugins) في المقالات أو الصفحات عن طريق تسجيل رمز قصير (short code) لاستخدامها.add_shortcode()دالة.
// 注册一个简单的问候短代码
function my_first_plugin_greeting_shortcode( $atts ) {
// 使用 shortcode_atts 定义默认属性并合并用户输入
$attributes = shortcode_atts( array(
'name' => '访客',
), $atts );
// 获取我们之前设置的选项
$greeting_text = get_option( 'my_first_plugin_greeting', 'Hello' );
// 生成输出
$output = '<div class="my-plugin-greeting">';
$output .= esc_html( $greeting_text ) . ', ' . esc_html( $attributes['name'] ) . '!';
$output .= '</div>';
return $output;
}
add_shortcode( 'my_greeting', 'my_first_plugin_greeting_shortcode' ); الآن، يمكن للمستخدمين إدخال النصوص في المحرر.[my_greeting name="张三"]في هذه الحالة، سيتم عرض النص “Hello from my plugin!، Zhang San!” في الجزء الأمامي من الموقع (الواجهة الأمامية للمستخدم).
صفحة إعدادات إضافة الإضافات
لكي يتمكن المستخدمون من تخصيص رسائل التحية الخاصة بهم، نحتاج إلى إضافة صفحة إعدادات في الواجهة الخلفية للإدارة. هذا يتطلب إضافة صفحة قائمة رئيسية أو فرعية، بالإضافة إلى معالجة عملية حف
// 在后台“设置”菜单下添加子菜单页
function my_first_plugin_add_settings_page() {
add_options_page(
'我的插件设置', // 页面标题
'我的第一个插件', // 菜单标题
'manage_options', // 所需权限
'my-first-plugin', // 菜单slug
'my_first_plugin_render_settings_page' // 回调函数,用于输出页面内容
);
}
add_action( 'admin_menu', 'my_first_plugin_add_settings_page' );
// 渲染设置页面的HTML
function my_first_plugin_render_settings_page() {
?>
<div class="wrap">
<h1>إعدادات الإضافة الأولى الخاصة بي</h1>
<form method="post" action="/ar/options.php/" data-trp-original-action="options.php">
<input type="hidden" name="trp-form-language" value="ar"/></form>
</div>
<?php
}
// 注册设置、区域和字段
function my_first_plugin_register_settings() {
register_setting(
'my_first_plugin_settings_group', // 设置组名
'my_first_plugin_greeting' // 选项名
);
add_settings_section(
'my_first_plugin_main_section', // 区域ID
'问候语设置', // 区域标题
null, // 区域回调函数(可为空)
'my-first-plugin' // 页面slug
);
add_settings_field(
'greeting_text_field', // 字段ID
'问候语文本', // 字段标题
'my_first_plugin_greeting_field_callback', // 字段HTML的回调函数
'my-first-plugin', // 页面slug
'my_first_plugin_main_section' // 所属区域ID
);
}
add_action( 'admin_init', 'my_first_plugin_register_settings' );
// 渲染问候语输入字段
function my_first_plugin_greeting_field_callback() {
$greeting = get_option( 'my_first_plugin_greeting' );
echo '<input type="text" name="my_first_plugin_greeting" value="' . esc_attr( $greeting ) . '" class="regular-text" />';
} يقوم هذا الكود بإنشاء صفحة إعدادات قياسية لووردبريس. عندما يقوم المستخدم بتعديل رسالة التحية على صفحة الإعدادات وحفظ التغييرات، فإن الكود المختصر (الشورتكود) الذي تم إنشاؤه مسبقًا سيستخدم نص رسالة التحية الجديدة
الملخصات
من خلال هذا الدليل، قمنا بإنشاء إضافة (plugin) لووردبريس (WordPress) تحتوي على وظائف أساسية من الصفر. لقد تعلمت كيفية إنشاء هيكل ملفات الإضافة، وكتابة معلومات الرأس الخاصة بها، واستخدام “خطافات الإجراءات” (action hooks) لإرسال إشعارات في الخلفية، وتعديل المحتوى باستخدام المرشحات (filters)، وإنشاء رموز قصيرة (shortcodes) يمكن للمستخدمين استدعاؤها في الواجهة الأمامية، بالإضافة إلى إنشاء صفحة إعدادات كاملة لإدارة خيارات الإضافة. هذه هي المهارات الأساسية والأكثر أهمية في تطوير إضافات ووردبريس. بمجرد إتقانك لهذه المهارات، يمكنك الاطلاع على دليل ووردبريس الرسمي للإضافات لمعرفة المزيد عن واجهات برمجة التطبيقات (APIs) مثل جداول قواعد البيانات المخصصة، ونقاط نهاية واجهة برمجة التطبيقات الخاصة بـ REST، ومعالجة AJAX، وما إلى ذلك، وبالتالي تطوير إضافات أكثر قوة واحترافية.
الأسئلة الشائعة الأسئلة المتداولة
ما هي المعرفة بلغات البرمجة المطلوبة لتطوير إضافات (Plugins) لمنصة ووردبريس (WordPress) باستخدام الكود ###؟
لتطوير إضافات (plugins) لووردبريس (WordPress)، من الضروري امتلاك معرفة أساسية بلغة PHP، نظرًا لأن قاعدة برمجة ووردبريس نفسها مكتوبة بلغة PHP. بالإضافة إلى ذلك، يجب أن تكون على دراية بلغات HTML وCSS وJavaScript الأساسية، وذلك لبناء واجهة المستخدم الأمامية (frontend) ومنطق التفاعل (interaction logic) للإضافة. كما أن امتلاك معرفة أساسية بلغة SQL سيساعدك في التعامل مع عمليات معالجة البيانات الأكثر تعقيدًا.
كيف أقوم بتصحيح أخطاء (التصحيح) في إضافة (Plugin) ووردبريس الخاصة بي؟
أولاً، تأكد من أنك قمت بتنفيذ الخطوات اللازمة في…wp-config.phpتم تفعيل الملف.WP_DEBUGالوضع الأول يقوم بعرض أخطاء PHP وتحذيراتها على الشاشة. أما الخيار الثاني، فيمكن استخدامه…error_log()تقوم الدالة بكتابة معلومات التصحيح إلى سجل الأخطاء على الخادم. بالنسبة لعمليات التصحيح الأكثر تعقيدًا، يمكن النظر في استخدام أدوات تصحيح خاصة بلغة PHP، مثل Xdebug، أو تثبيت إضافات تصحيح لـ WordPress لمساعدة في تحديد المشكلات.
كيف أنشر الإضافة التي طورتها في دليل إضافات ووردبريس الرسمي؟
ستحتاج إلى زيارة موقع WordPress.org وإنشاء حساب مطور. بعد ذلك، ستقوم بتحميل كود الإضافة الخاصة بك باستخدام أداة Subversion (SVN) إلى المستودع الرسمي الذي سيتم تخصيصه لك. يجب أن تتوافق إضافتك مع رخصة GPL، ويجب أن يلبي كود الإضافة معايير معينة من حيث الجودة والأمان والوثائق. بعد اجتياز عملية المراجعة، ستظهر إضافتك في الدليل الرسمي لـ WordPress حيث يمكن للمستخدمين تنزيلها.
كيف يجب تحميل ملفات CSS و JavaScript الخاصة بالإضافات (plugins) بشكل صحيح في الجزء الأمامي (الواجهة البرمجية) للموقع؟
لتجنب الصراعات وضمان الأداء، لا ينبغي إدخال الموارد مباشرةً إلى ملفات القوالب. الطريقة الصحيحة هي استخدام…wp_enqueue_style()وwp_enqueue_script()الدوال… بالنسبة لموارد واجهة الإدارة الخلفية، يجب تثبيتها (أي ربطها بالنظام) بشكل مناسب.admin_enqueue_scripts“Hook”؛ بالنسبة لموارد واجهة المستخدم الأمامية للموقع الإلكتروني، يجب تثبيتها (mounting) هناك.wp_enqueue_scripts“Hook” (خطاف). هذا يضمن أن العلاقات التابعة (dependencies) صحيحة، وأن نفس الملف لن يتم تحميله مرارًا وتكرارًا.
ما التالي، ما التالي؟
القراءة الموسعة والمعرفة العملية
فيما يلي بعض الموضوعات ذات الصلة بموضوع هذه المقالة وهي مناسبة لمزيد من القراءة المتعمقة. وغالباً ما يكون من الأفضل إعطاء الأولوية للبدء بالمقال الأقرب إلى مشكلتك الحالية ثم التوسع تدريجياً إلى المواضيع المحيطة.
- لماذا يجب عليك استخدام WooCommerce لبناء متجر عبر الإنترنت؟
- لماذا اختيار ووردبريس (WordPress)؟ العشر مزايا الأساسية لنظام إدارة المحتوى المفتوح المصدر (CMS):
- إتقان WooCommerce في عشر دقائق: دليل لبناء مواقع التجارة الإلكترونية من البداية حتى تحقيق الربح
- دليل شامل لـ WooCommerce: من التثبيت إلى التكوين المتقدم لمتجر إلكتروني جاهز للعمل
- ما هو ووردبريس (WordPress)؟ مقدمة شاملة عن نظام إدارة المحتوى