لماذا يجب تعلم تطوير إضافات (plugins) لمنصة ووردبريس (WordPress)؟
ووردبريس، كأحد أكثر أنظمة إدارة المحتوى شيوعًا على مستوى العالم، يتمتع بقدرة توسعية هائلة بفضل آلية الإضافات (البرامج الإضافية). تعلم تطوير هذه الإضافات يعني أنك لم تعد مقيدًا بوظائف الإضافات المتوفرة مسبقًا، حيث يمكنك إنشاء حلول مخصصة وفقًا لمتطلبات مشروعك، سواء كان ذلك لتقديم ميزات فريدة للعملاء أو لتحويل الأفكار المبتكرة إلى منتجات قابلة للتطبيق ومشاركتها مع المجتمع. إتقان هذه المهارة يمكن أن يحسن بشكل كبير من ك
إن الإضافة (Plugin) القياسية لـ WordPress عبارة عن ملف PHP مستقل أو مجلد يحتوي على عدة ملفات، وتتفاعل هذه الإضافة مع جوهر WordPress (Core) من خلال مجموعة من الواجهات المحددة مسبقًا. يدور عملية التطوير بشكل أساسي حول فهم كيفية عمل نظام WordPress وكيفية توسيع وظائفه باستخدام هذه الإضافات.Hooksالنظام يتبع معايير الترميز والممارسات الأمنية المعتمدة.
إنشاء أول إضافة (plugin) خاصة بك
قبل البدء في كتابة الكود، تحتاج إلى بيئة تطوير محلية. يُنصح باستخدام XAMPP أو MAMP أو Local by Flywheel. بمجرد أن تكون البيئة جاهزة، يمكنك البدء في العمل.wp-content/pluginsتم إنشاء أول إضافة (plugin) الخاصة بك داخل المجلد.
القراءة الموصى بها إتقان تطوير إضافات ووردبريس من الصفر: دليل كامل وتطبيقات عملية。
إنشاء ملف الإضافة الرئيسية (Main Plugin File)
يجب أن يحتوي كل إضافة (plugin) على ملف PHP رئيسي، ويجب أن يتضمن هذا الملف تعليقات تحتوي على معلومات قياسية عن الإضافة في بدايته. هذا الملف هو نقطة الدخول الرئيسية للإضافة، وعادة ما يكون اسمه مطابقًا لاسم مجلد الإضافة نفسهmy-first-pluginقم بفتح المجلد المطلوب، ثم انشئ ملفًا بنفس الاسم داخله.my-first-plugin.phpملف.
تعتبر التعليقات في بداية الملفات مهمة للغاية، حيث يستخدمها ووردبريس (WordPress) للتعرف على المعلومات الأساسية للإضافات (البرامج الإضافية).
<?php
/**
* Plugin Name: 我的第一个插件
* Plugin URI: https://example.com/my-first-plugin
* Description: 这是一个用于学习插件开发的简单示例插件。
* Version: 1.0.0
* Author: 你的名字
* Author URI: https://example.com
* License: GPL v2 or later
* Text Domain: my-first-plugin
*/ بعد حفظ الملف، قم بتسجيل الدخول إلى واجهة ووردبريس الخلفية الخاصة بك، ثم اذهب إلى صفحة “الإضافات” (Plugins). ستجد الإضافة الجديدة موجودة في قائمة الإضافات ويمكنك تفعيلها. في الوقت الحالي، لا تحتوي هذه الإضافة على أي ميزات أو
إضافة الميزة الأولى
الآن، دعونا نضيف ميزة بسيطة لهذا الإضافة: أن تقوم تلقائيًا بإضافة نص مخصص في نهاية محتوى المقال. سيتطلب ذلك استخدام إمكانيات ووردبريس (WordPress).the_contentمخالب المرشحات (Filter Hooks).
في الملف الرئيسي للإضافة (plugin main file)، أضف الكود التالي أسفل معلومات التعليقات (comments):
القراءة الموصى بها الدليل الشامل لتطوير إضافات ووردبريس: من الصفر إلى بناء أول إضافة وظيفية لك。
// 在文章内容后添加自定义文本
function myfp_add_footer_text($content) {
// 确保只在主循环的单篇文章中显示
if (is_single() && in_the_loop() && is_main_query()) {
$custom_text = '<p><em>شكرًا لقراءتكم! تم تقديم الدعم لهذا المقال بواسطة “أول إضافة لي” (My First Plugin).</em></p>';
$content .= $custom_text;
}
return $content;
}
// 将函数挂载到‘the_content’过滤器
add_filter('the_content', 'myfp_add_footer_text'); هذا القطعة من الكود تحدد دالة (function).myfp_add_footer_textإنه يستقبل محتوى المقالات.$contentكمعامل، يتم داخل الدالة استخدام تحكمات شرطية لضمان أن يتم تنفيذ الكود فقط على صفحات المقالات الفردية وفي الحلقة الرئيسية للاستعلام الرئيسي. بعد ذلك، يتم دمج قطعة نص HTML مخصصة مع البيانات المسترجعة. وأخيرًا، يadd_filter()تقوم الدالة بتثبيت هذه الدالة المخصصة في نظام ووردبريس (WordPress).the_contentالمرشح (الفلتر) مفعّل. بعد تنشيط الإضافة، عندما تقرأ أي مقالة، سترى النص المضاف في أسفل المحتوى.
التعمق في الجوهر: الخطافات (Hooks) وواجهات برمجة التطبيقات (APIs)
جوهر تطوير إضافات ووردبريس يكمن في فهم نظام الخطافات (Hooks) الخاص به واستخدامه بمهارة، بالإضافة إلى استغلال واجهة برمجة التطبيقات (API) الغنية المتاحة. هذه الأدوات تشكل الجسر الذي يسمح للإضافات بالتواصل بشكل آمن ومو
فهم آليات تنفيذ الإجراءات (Actions) ومكونات الارتباط مع المرشحات (Filter Hooks)
تنقسم الخطافات (Hooks) إلى نوعين رئيسيين: الأفعال (Actions) والمرشحات (Filters). تسمح خطافات الأفعال (Action Hooks) بتنفيذ كود مخصص في نقاط زمنية محددة. على سبيل المثال،wp_footerتتم تنفيذ العملية قبل علامات أسفل الصفحة، ويمكنك القيام بذلك عن طريق…add_action('wp_footer', 'your_function')لإدخال كود التتبع أو HTML المخصص.
تسمح خيوط المرشحات (filter hooks) بـ“تعديل” البيانات؛ فهي تستقبل البيانات، تقوم بمعالجتها باستخدام الدوال الخاصة بك، ثم تعيدها مرة أخرى. مثال إضافة نص القائمة السفلية في النص السابق يعتبر تطبيقًا نموذجيًا لاستخدام المexcerpt_lengthمرشح (Filter) يُستخدم لتعديل طول ملخص المقال.
// 修改摘要长度为20个单词
function myfp_custom_excerpt_length($length) {
return 20;
}
add_filter('excerpt_length', 'myfp_custom_excerpt_length'); استخدام واجهة برمجة التطبيقات (API) لقاعدة بيانات ووردبريس (WordPress Database API)
غالبًا ما تحتاج الإضافات (البرامج الإضافية) إلى تخزين البيانات وقراءتها. يوفر ووردبريس (WordPress) الوسائل اللازمة لذلك.wpdbتُستخدم الفئات (Classes) للتفاعل مع قاعدة البيانات بشكل آمن. بالنسبة لبيانات الأزواج المفتاح-القيمة البسيطة، يُنصح بشدة باستخدام واجهة برمجة التطبيقات (API) المتاحة كخيار (Options).
على سبيل المثال، من أجل أن يتمكن المستخدمون من تخصيص نص القائمة السفلية الذي أضفناه مسبقًا، يمكننا إنشاء خيار يسمح لهم بذلك.
القراءة الموصى بها الدليل الكامل لتطوير ملحقات ووردبريس: من البداية إلى بناء ملحقات احترافية。
// 1. 创建可配置的页脚文本
function myfp_add_footer_text_v2($content) {
if (is_single() && in_the_loop() && is_main_query()) {
// 从数据库获取选项值,如果不存在则使用默认值
$footer_text = get_option('myfp_footer_text', '感谢阅读!本文由“我的第一个插件”提供支持。');
$custom_text = '<p><em>'`. esc_html($footer_text)`.'</em></p>';
$content .= $custom_text;
}
return $content;
}
add_filter('the_content', 'myfp_add_footer_text_v2'); الآن، يمكن نقل المحتوى النصي عبر…get_option()تقوم الدالة بقراءة البيانات من قاعدة البيانات. بعد ذلك، نحتاج إلى صفحة إدارة تسمح للمستخدمين بتعديل هذه القيمة.
إنشاء صفحة لإدارة الإضافات (Plugins)
لجعل الإضافة أكثر احترافية وسهولة في الاستخدام، من الضروري إضافة صفحة للإعدادات إليها. يتم تحقيق ذلك عادةً من خلال واجهة برمجة التطبيقات (API) لقائمة الإدارة في ووردبريس (WordPress).
إضافة قائمة إدارة وصفحات فرعية
يمكننا إضافة قائمة رئيسية مستقلة للإضافة (البرنامج الإضافي)، أو جعلها قائمة فرعية تحت قائمة “الإعدادات” أو “الأدوات”. في هذه الحالة، سنقوم بإضافتها تحت قائمة “الإعدادات”.
أولاً، استخدم.add_action()تركيب دالة علىadmin_menu“Hook” – أضف عناصر القائمة داخل هذه الدالة.
// 添加管理菜单
function myfp_add_admin_menu() {
add_options_page(
'我的第一个插件设置', // 页面标题
'我的插件设置', // 菜单标题
'manage_options', // 所需权限
'my-first-plugin', // 菜单slug
'myfp_options_page_html' // 用于渲染页面的回调函数
);
}
add_action('admin_menu', 'myfp_add_admin_menu'); add_options_page()ستقوم الدالة بإنشاء صفحة فرعية ضمن قائمة “الإعدادات”. عندما يقوم المستخدم بالنقر على هذه القائمة، سيقوم ووردبريس بتنفيذ الدالة الاستدعائية (callback function) التي حددناها.myfp_options_page_htmlقم بعرض محتوى الصفحة.
إنشاء نموذج لصفحة إعدادات
بعد ذلك، سنقوم بتعريف دالة تعاقدية (callback function) لعرض نموذج إعدادات بسيط. سيتم إرسال هذا النموذج إلى…options.phpهذه هي الطريقة القياسية التي يستخدمها WordPress لمعالجة الإعدادات.
// 渲染设置页面
function myfp_options_page_html() {
// 检查用户权限
if (!current_user_can('manage_options')) {
return;
}
?>
<div class="wrap">
<h1><?php echo esc_html(get_admin_page_title()); ?></h1>
<form action="/ar/options.php/" method="post" data-trp-original-action="options.php">
<?php
// 输出必要的安全字段
settings_fields('myfp_settings');
// 输出设置章节和字段
do_settings_sections('my-first-plugin');
// 提交按钮
submit_button('保存设置');
?>
<input type="hidden" name="trp-form-language" value="ar"/></form>
</div>
أنا لا أعرف ماذا أقول. إعدادات التسجيل، الفصول، والحقول
مجرد النموذج وحده لا يكفي؛ نحتاج إلى استخدام…register_setting(), add_settings_section()وadd_settings_field()استخدم دوال مثل هذه لإخبار ووردبريس بما هي خيارات الإعدادات المتاحة لدينا.
// 初始化插件设置
function myfp_settings_init() {
// 注册一个设置项‘myfp_settings’,它包含一个字段‘myfp_footer_text’
register_setting('myfp_settings', 'myfp_footer_text');
// 在页面‘my-first-plugin’上添加一个设置章节
add_settings_section(
'myfp_section',
'页脚文本设置',
null, // 章节描述回调函数,这里不需要
'my-first-plugin'
);
// 在上述章节中添加一个字段
add_settings_field(
'myfp_field_footer_text',
'自定义页脚文本',
'myfp_field_footer_text_html', // 渲染字段HTML的回调函数
'my-first-plugin',
'myfp_section',
['label_for' => 'myfp_footer_text']
);
}
add_action('admin_init', 'myfp_settings_init');
// 渲染文本输入字段
function myfp_field_footer_text_html() {
// 获取数据库中保存的值
$value = get_option('myfp_footer_text');
?>
<input type="text" id="myfp_footer_text" name="myfp_footer_text" value="<?php echo esc_attr($value); ?>" class="regular-text">
<p class="description">سيتم عرض هذا النص في نهاية كل مقال.</p>
أنا لا أعرف ماذا أقول. الآن، قم بتحديث واجهة ووردبريس الخلفية (الواجهة الإدارية)، وستجد خيار “إعدادات الإضافات” تحت قائمة “الإعدادات”. عند الدخول إلى هذه الصفحة، يمكنك تعديل نص القائمة السفلية المخصصة وحفظ التغييرات، وسيتم تحديث محتوى المقالات في الواجهة الأمام
الملخصات
يقدم لك هذا الدليل الطريق الأساسي لتطوير إضافات (plugins) لمنصة ووردبريس (WordPress): بدءًا من إنشاء ملف إضافة بسيط يحتوي على المعلومات الرئيسية (الheaders) القياسية، مرورًا باستخدام ميزات “الأفعال” (actions) و“مخالب الفلترات” (filter hooks) لإضافة وظائف جديدة إلى ووردبريس، وصولاً إلى تخزين البيانات باستخدام واجهة برمجة التطبيقات (API) الخاصة بالخيارات (options API)، وأخيرًا إنشاء واجهة إدارة كاملة في الواجهة الخلفية. يعكس هذا العملية بأكملها فلسفة تطوير ووردبريس المبنية على الوحدات المعيارية (modules) والاعتماد على “مخالب الفلترات” (hook system). بعد إتقان هذه المعرفة الأساسية، يمكنك استكشاف مواضيع أكثر تقدمًا مثل تخصيص أنواع المقالات (custom post types)، واستخدام الكود المختصر (shortcodes)، وتكامل واجهات برمجة التطبيقات عبر بروتوكول REST (REST API integration)، ومعالجة الطلبات عبر AJAX (AJAX handling)، بالإضافة إلى تدويل الإضافات (plugin localization). تذ
الأسئلة الشائعة الأسئلة المتداولة
ما المعارف المسبقة المطلوبة لتطوير الإضافات
يجب أن تمتلك معرفة أساسية بلغة البرمجة PHP، وتشمل هذه المعرفة المفاهيم مثل المتغيرات (variables)، الدوال (functions)، التحكمات الشرطية (conditional statements)، والحلقات (loops). بالإضافة إلى ذلك، يجب أن يكون لديك فهم أساسي للغات HTML وCSS للتعامل مع العرض الأمامي للموقع (front-end) وتنسيقه (styles). سيكون من المفيد أيضًا أن تكون على دراية بالعمليات الأساسية لقاعدة البيانات MySQL لفهم كيفية تخزين البيانات، على الرغم من أن واجهة برمجة التط
كيفية تصحيح الأخطاء (الديباجج) في الإضافة (البرنامج الإضافي) التي يتم تطويرها حاليًا؟
أكثر الطرق فعالية هو تفعيل وضع التصحيح (Debugging Mode) في ووردبريس.wp-config.phpفي الملف، سيتم…WP_DEBUGيتم تعريف الثابت على النحو التالي:trueسيعرض هذا جميع أخطاء PHP وتحذيراتها وإشعاراتها على الشاشة. في الوقت نفسه، يمكن استخدامه…error_log()تقوم الدالة بكتابة معلومات التصحيح (الديباج) في سجل الأخطاء الخاص بالخادم، أو تستخدم واجهات التطوير في المتصفح مثل Console وNetwork لإجراء عمليات تصحيح الأخطاء على الجزء الأمامي (الواجهة البرمجية للمستخد
كيف يمكن للإضافات (plugins) تحقيق دعم لللغات المتعددة؟
يستخدم WordPress عمليات “التدويل (i18n)” و“التحليل المحلي (l10n)” لدعم اللغات المتعددة. في كود الإضافات (plugins)، يجب استخدام رموز النصوص التي تحتاج إلى ترجمة بطريقة معينة.__()أو_e()يتم تغليف دوال الترجمة هذه ثم استخدام أدوات مثل Poedit لاستخراج هذه السلاسل النصية من الكود المصدري، ومن ثم إنشاء….potملفات القوالب، واستخدامها لإنشاء نسخ بلغات مختلفة (مثل…)zh_CN.poأولاً، قم بإنشاء ملف الترجمة المناسب للنصوص المطلوب ترجمتها. ثم، في ملف الإضافة الرئيسي، أعلن عن نطاق النصوص الخاص بك داخل قسم “Text Domain” في بداية الملف، واستخدم هذا النطاق أثناء عملية التload_plugin_textdomain()تحميل الترجمة للوظيفة.
كيف يمكن نشر الإضافات (plugins) التي تم تطويرها إلى الدليل الرسمي؟
أولاً، يجب عليك التأكد من أن الإضافة تتبع بشكل كامل معايير البرمجة الرسمية لووردبريس (WordPress)، وسياسات الخصوصية، بالإضافة إلى متطلبات التوافق مع رخصة GPL. بعد ذلك، قم بتقديم طلب للحصول على مستودع SVN على موقع WordPress.org. قم بتحميل كود الإضافة الخاص بك (بما في ذلك الملفات الرئيسية وملفات الموارد وملفات الترجمة) وارسلها إلى هذا المستودع SVN./trunkالدليل: يتم نشر الإصدارات الجديدة باستخدام علامات (tags) في نظام SVN. سيتم مزامنة الكود تلقائيًا من مستودع SVN الخاص بك إلى الدليل الرسمي، وبعد مراجعته يتم عرضه هناك.
ما التالي، ما التالي؟
القراءة الموسعة والمعرفة العملية
فيما يلي بعض الموضوعات ذات الصلة بموضوع هذه المقالة وهي مناسبة لمزيد من القراءة المتعمقة. وغالباً ما يكون من الأفضل إعطاء الأولوية للبدء بالمقال الأقرب إلى مشكلتك الحالية ثم التوسع تدريجياً إلى المواضيع المحيطة.
- دليل تطوير إضافات ووردبريس: كيف تبني إضافتك المخصصة الأولى من الصفر
- كيف تصبح مطورًا لإضافات ووردبريس: دليل شامل من الصفر إلى النهاية
- دليل شامل لتطوير إضافات ووردبريس: من المبتدئين إلى الخبراء في إنشاء إضافات متخصصة
- تطوير الإضافات في ووردبريس: من الأساسيات إلى الاحترافية - إنشاء أول إضافة مخصصة لك.
- من الصفر إلى الواحد: دليل شامل لتطوير أول إضافة (Plugin) لموقع ووردبريس (WordPress) الخاص بك خطوة بخطوة