لماذا تعتبر الإضافات (Plugins) جوهر نظام ووردبريس (WordPress) البيئي (ecosystem)؟
تعتمد قابلية توسعة ووردبريس القوية إلى حد كبير على نظام الإضافات (Plugins) الخاص به. تسمح الإضافات للمطورين بإضافة أي ميزات إلى الموقع دون الحاجة إلى تعديل الكود الأساسي لووردبريس، بدءًا من نماذج الاتصال البسيطة وحتى أنظمة التجارة الإلكترونية المعقدة. فهم كيفية تطوير الإضافات يعني أنك تمتلك المفتاح لتخصيص ووردبريس لتلبية أي احتياجات. تتبع ووردبريس مبدأ “الاتفاقيات أهم من الإعدادات” (Conventions over Configuration)، وتتفاعل مع الكود الأساسي من خلال مجموعة واضحة من نقاط الاستدعاء (Hooks) ضمن دورة حياة الإضافة.
من حيث المبدأ، الإضافة (plugin) القياسية هي عبارة عن واحد أو أكثر من المكونات أو الأدوات التي تقع…/wp-content/plugins/الملفات PHP الموجودة في المجلد يجب أن تحتوي على تعليقات خاصة في بدايتها توضح محتويات الإضافة (plugins)، وذلك لوصف هذه الإضافة لنظام ووردبريس (WordPress). هذا التصميم المعياري يضمن عزل الوظائف المختلفة واستقرار النظام، مما يجعل تفعيل الإضافات أو تعطيلها أو إزالتها عمليات آمنة وقابلة للتحكم.
بناء أول إضافة (Plugin) الخاصة بك: الهيكل الأساسي
لإنشاء إضافة (plugin)، يجب أولاً إنشاء الملفات الأساسية والهيكل الخاص بها. الأمر لا يتعلق فقط بكتابة الكود، بل يهدف أيضًا إلى وضع الأساسات اللازمة لصيانة الإضافة وتوسيعها في المستقبل.
القراءة الموصى بها تعلم تطوير إضافات ووردبريس من الصفر: إنشاء وظائف مخصصة وتحقيق أرباح فعالة。
أولاً، في بيئة تطوير WordPress المحلية الخاصة بك…/wp-content/plugins/داخل المجلد، قم بإنشاء مجلد جديد. يجب أن يكون اسم المجلد فريدًا ويصف وظيفة الإضافة (البرنامج الإضافي)، ويتكون من أحرف إنجليزية صغيرة. على سبيل المثال:my-first-greeting-pluginداخل هذا المجلد، قم بإنشاء ملف PHP رئيسي، وعادةً ما يكون اسم الملف مطابقًا لاسم المجلد نفسه، على سبيل المثال:my-first-greeting-plugin.php。
إعلان رأس معلومات الإضافة (Plugin Information Header Declaration)
يجب أن يبدأ الملف الرئيسي للإضافة (plugin) بكتلة تعليقات محددة، وهذا أمر أساسي لكي يتعرف ووردبريس (WordPress) على الإضافة. أضف الكود التالي إلى ملف PHP الرئيسي الخاص بك:
<?php
/**
* Plugin Name: 我的第一个问候插件
* Plugin URI: https://example.com/my-greeting-plugin
* Description: 这是一个演示插件,用于在网站页脚添加一句自定义问候语。
* Version: 1.0.0
* Author: 你的名字
* Author URI: https://example.com
* License: GPL v2 or later
* Text Domain: my-first-greeting-plugin
* Domain Path: /languages
*/ تحدد هذه الشرحات (التعليقات) جميع المعلومات التي يتم عرضها عن الإضافة (البرنامج الإضافي) في صفحة “الإضافات” داخل واجهة ووردبريس الخلفية.Plugin Nameهذا الحقل إلزامي، بينما باقي الحقول اختيارية. بعد حفظ الملف، ستتمكن من رؤية هذا الإضافة الجديدة في قائمة الإضافات في واجهة ووردبريس الخلفية، ويمكنك تفعيلها تمامًا مثل أي إضافة أخرى.
استخدم خطافات الحركة لإضافة وظائف.
بعد تفعيل الإضافة، فإنها لن تقوم بأي شيء في الوقت الحالي. لكي تعمل الإضافة بشكل صحيح، نحتاج إلى استخدام “الخطافات (Hooks)” المتاحة في ووردبريس (WordPress). تنقسم الخطافات إلى نوعين: “الإجراءات (Actions)” و“المرشحات (Filters)”. تسمح لك الإجراءات (Actions) بتنفيذ كود مخصص في أوقات معينة، مثل عند تحميل الصفحة أو نشر مقالة.
أضف عبارة تحية في القسم السفلي من الصفحة.
إحدى الاحتياجات الشائعة هي إضافة محتوى إلى منطقة القائمة السفلية (الفوتر) في الموقع الإلكتروني. يوفر ووردبريس (WordPress) الوسائل اللازمة لتحقيق ذلك.wp_footerهذا هو “خطاف الإجراء” (action hook)؛ يمكننا “تثبيت” (mount) دوال مخصصة عليه.
القراءة الموصى بها دليل نهائي لتطوير إضافات ووردبريس: كيفية إنشاء أول إضافة مخصصة من الصفر。
أضف الكود التالي أسفل تعليقات بداية ملف PHP الرئيسي:
// 声明一个自定义函数,用于输出问候语
function my_greeting_display() {
echo '<p style="text-align: center; color: #666; padding: 10px;">مرحبًا بالعالم! أهلاً بكم في أول إضافة (Plugin) لي لمنصة ووردبريس (WordPress).</p>';
}
// 使用 add_action 函数将我们的自定义函数挂载到 wp_footer 钩子上
add_action( 'wp_footer', 'my_greeting_display' ); add_actionالدوال هي الجسر الذي يربط بين الكود المخصص وجوهر ووردبريس (WordPress). المعامل الأول هو اسم الخطاف (hook).‘wp_footer’المعلمة الثانية هي اسم الدالة التي قمنا بتعريفها.‘my_greeting_display’قم بحفظ الملف ثم قم بتحديث صفحة الموقع الإلكتروني، وسوف تتمكن من رؤية هذا النص الترحيبي في أسفل الصفحة.
إدخال مرشحات لزيادة المرونة
تسمح خطافات الأفعال (Action Hooks) بـ“القيام بشيء ما”, بينما تسمح خطافات المرشحات (Filter Hooks) بـ“تعديل البيانات”. فهي تتيح لنا تعديل البيانات قبل استخدامها أو عرضها في المتصفح. وهذا يجعل وظائف الإضافات (Plugins) أكثر مرونة وقابلية للتكوين.
修改文章标题的示例
لنفترض أننا نريد إضافة عبارة “【موصى به】” تلقائيًا أمام عناوين جميع المقالات. يمكننا استخدام…the_titleمرشحات.
أضف الدالة الجديدة والمرشح (filter) التاليين إلى الملف الرئيسي للإضافة (plugin main file) الخاصة بك:
// 声明一个函数,用于修改文章标题
function my_prefix_post_title( $title, $post_id = null ) {
// 确保只在主循环且是文章页面添加前缀
if ( is_single() && in_the_loop() ) {
$title = '【推荐】' . $title;
}
// 必须返回修改后的值
return $title;
}
// 使用 add_filter 函数,挂载到 the_title 过滤器
add_filter( 'the_title', 'my_prefix_post_title', 10, 2 ); add_filterالمعامل الثالث10إنها تمثل أولوية التنفيذ؛ كلما كان الرقم أصغر، كان التنفيذ أسرع. الوسيط الرابع هو…2يعني أن المعلومات يتم تمريرها إلى الدالة (function).my_prefix_post_titleعدد المعاملات (parameters). يجب على دالة التصفية (filter function) أن تعيد القيمة المعدلة، وليس فقط أن تقوم بإخراجها. هذا يسمح لكودك بالتعاون بشكل متسلسل مع فلاتر أخرى في الإضافات (plugins) أو المواضيع (themes).
القراءة الموصى بها الإلمام الشامل بتطوير إضافات ووردبريس: بناء وظائف مخصصة من الصفر。
إنشاء صفحة لإدارة الإضافات (Plugins)
عندما يحتاج الإضافة إلى بعض الخيارات التي يمكن للمستخدمين تكوينها بأنفسهم، نحتاج إلى إنشاء صفحة للإدارة الخلفية لها. يتم تحقيق ذلك عن طريق استخدام واجهة برمجة التطبيقات (API) لقائمة الإدار
إضافة صفحة الإعدادات إلى واجهة الإدارة الخلفية
سنقوم بإضافة قائمة علوية بسيطة إلى شريط التنقل الأيسر في واجهة ووردبريس الخلفية.
استمر في إضافة الكود التالي إلى الملف الرئيسي للإضافة الخاصة بك:
// 注册管理菜单
function my_greeting_add_admin_menu() {
add_menu_page(
'问候插件设置', // 页面标题
'问候插件', // 菜单标题
'manage_options', // 权限(管理员)
'my-greeting-plugin', // 菜单slug
'my_greeting_admin_page', // 回调函数,用于显示页面内容
'dashicons-admin-generic', // 菜单图标(WordPress Dashicons)
80 // 菜单位置
);
}
add_action( 'admin_menu', 'my_greeting_add_admin_menu' );
// 定义设置页面的HTML内容
function my_greeting_admin_page() {
// 安全检查
if ( !current_user_can( 'manage_options' ) ) {
return;
}
?>
<div class="wrap">
<h1></h1>
<form action="/ar/options.php/" method="post" data-trp-original-action="options.php">
<?php
// 输出设置字段(后续可扩展)
settings_fields( 'my_greeting_options' );
do_settings_sections( 'my-greeting-plugin' );
submit_button( '保存设置' );
?>
<input type="hidden" name="trp-form-language" value="ar"/></form>
<p>مرحبًا بكم في صفحة إعدادات أول إضافة (plugin) خاصة بي. في المستقبل، سيكون بإمكاننا إضافة المزيد من الخيارات هنا.</p>
</div>
أنا لا أعرف ماذا أقول. add_menu_pageالدوال هي العنصر الأساسي في إنشاء القوائم الرئيسية للموقع. بعد حفظ التغييرات، قم بتسجيل الدخول إلى واجهة ووردبريس الخلفية كمسؤول، وسترى على الجانب الأيسر عنصر قائمة جديدًا يُسمى “إضافة التحيات” (Greetings Plugin). انقر عليه للدخول إلى صفحة الإعدادات الأساسية التي قمنا بتعريفها. هذه هي الخطوة الأولى نحو بناء إمكانيات تكوين الإضافات الأكثر تعقيدًا؛ في المستقبل، يمكنك إضافة حقول إعدادات، وميزات ل
الملخصات
من خلال إنشاء إضافة تحية بسيطة، قمنا بتتبع المسار الأساسي لتطوير إضافات ووردبريس: بدأنا بإنشاء الملفات الأساسية ومعلومات الرأس (header information)، ثم استخدمنا…add_actionالخطاف (hook) يقوم بتنفيذ الكود في موقع محدد، ثم يستمر في استخدامه بعد ذلك.add_filterتم تعديل المحتوى الناتج، وأضيفت واجهة التكوين الخلفية للإضافة من خلال واجهة برمجة التطبيقات (API) الموجودة في قائمة الإدارة. هذه الأركان الأساسية الأربعة – هيكل الملفات، خطافات الأفعال (action hooks)، خطافات المرشحات (filter hooks)، وواجهة الإدارة – تشكل أساس معظم إضافات ووردبريس. إذا فهمت واستخدمت هذه المفاهيم ببراعة، فأنت قد تقدمت من مرحلة المبتدئين إلى مرحلة الاحتراف، وستتمكن من بناء أدوات مخصصة أكثر تعقيدًا وقدرة، وبذلك تحرير إمكانيات ووردبريس بشكل كامل.
الأسئلة الشائعة الأسئلة المتداولة
ما هي أصغر هيكلية لمكون إضافي (plugin) تُسمى ###؟
يمكن أن يحتوي الإضافة (plugin) على ملف PHP واحد فقط. شريطة أن يحتوي هذا الملف على تعليقات الرأس الخاصة بإضافة WordPress الصحيحة والسارية المفعولة.Plugin Name)، ووضعه في/wp-content/plugins/في المجلد الرئيسي أو أي من مجلداته الفرعية، يمكن لبرنامج ووردبريس (WordPress) التعرف على هذا المحتوى وعرضه. بالطبع، غالبًا ما تقوم الإضافات (البرامج الإضافية) المعقدة بتنظيم الكود في عدة ملفات ومجلدات فرعية ل
ما هو الفرق الأساسي بين خطافات الأفعال (Action Hooks) وخطافات المرشحات (Filter Hooks)؟
مخالب الإجراءات (Action Hooks) تُستخدم لـ “تنفيذ عمليات معينة” في أوقات محددة، ولا تتطلب من دوالك إرجاع أي قيم؛ الهدف الأساسي منها هو تنفيذ قطعة من الكود. أما مخالب المرشحات (Filter Hooks) فهي تُستخدم لـ “تعديل البيانات”, وتجبر دوالك على إرجاع قيمة معينة (عادةً ما تكون القيمة المعدلة) حتى يتسنى نقلها عبر سلسلة عمليات التصفية. ببساطة، المخالب الإجرائية تقوم بشيء ما، بينما المخ
كيف يمكنني التأكد من أن كود الإضافة (البرنامج الإضافي) الخاص بي لن يتعارض مع إضافات أخرى؟
لتجنب حدوث تعارضات في أسماء الدوال أو الفئات أو الثوابت، فإن أفضل الممارسات هي استخدام المساحات الاسمية (الموصى بها) أو إضافة بادئة فريدة لجميع المعرفات. على سبيل المثال، جميع الدوال الموجودة في أمثلة هذا المقال تستخدم هذهmy_أوmy_greeting_كبادئة (prefix)، منذ إصدار PHP 5.3، أصبح استخدام المساحات الاسمية (namespaces) طريقة أكثر حداثة وشمولاً.
كيف يمكن إجراء التصحيحات (التدقيق والتعديلات) أثناء تطوير الإضافات (البرامج الإضافية)؟
أولاً، تأكد من أنك قمت بتنفيذ الخطوات اللازمة في…wp-config.phpتم تفعيل الملف.WP_DEBUG:define( ‘WP_DEBUG’, true );استخدمه.error_log()تقوم الدالة بكتابة معلومات التصحيح إلى سجل الأخطاء على الخادم. بالنسبة لفحوصات المتغيرات، يمكن استخدام…print_r()أوvar_dump()مجتمعةً.wp_die()يجب عرض المحتوى بشكل آمن على الصفحة. بالإضافة إلى ذلك، يمكن أن تساعد أدوات مثل Query Monitor، وهي أدوات متاحة للمطورين، في تحسين كفاءة عملية التصحيح والتطوير بشكل كبير.
ما التالي، ما التالي؟
القراءة الموسعة والمعرفة العملية
فيما يلي بعض الموضوعات ذات الصلة بموضوع هذه المقالة وهي مناسبة لمزيد من القراءة المتعمقة. وغالباً ما يكون من الأفضل إعطاء الأولوية للبدء بالمقال الأقرب إلى مشكلتك الحالية ثم التوسع تدريجياً إلى المواضيع المحيطة.
- دليل تطوير إضافات ووردبريس: كيف تبني إضافتك المخصصة الأولى من الصفر
- كيف تصبح مطورًا لإضافات ووردبريس: دليل شامل من الصفر إلى النهاية
- دليل شامل لتطوير إضافات ووردبريس: من المبتدئين إلى الخبراء في إنشاء إضافات متخصصة
- من الصفر إلى الواحد: شرح مفصل لكامل عملية تطوير مواقع ووردبريس ودليل عملي للتطبيق العملي
- من الصفر إلى الواحد: دليل شامل لتطوير أول إضافة (Plugin) لموقع ووردبريس (WordPress) الخاص بك خطوة بخطوة