فهم أساسيات الإضافات وإعداد بيئة التطوير.
قبل البدء في كتابة الشفرة، من المهم جدًا فهم المفاهيم الأساسية للمكونات الإضافية لـ WordPress وإعداد بيئة تطوير محلية مناسبة. المكون الإضافي هو في الأساس دليل يحتوي على ملف PHP واحد أو أكثر، والذي يعمل على توسيع أو تعديل الوظائف الأساسية باستخدام نظام "الخطافات" (Hooks) الذي تقدمه WordPress. على عكس المظاهر، تركز المكونات الإضافية على إضافة وظائف جديدة بدلاً من تغيير مظهر الموقع؛ حتى عند تغيير المظهر، تظل وظائف المكون الإضافي عادةً كما هي.
لبدء التطوير، تحتاج أولاً إلى بيئة WordPress محلية. يمكن تحقيق ذلك بسهولة باستخدام أدوات مثل Local by Flywheel أو MAMP أو XAMPP، أو باستخدام حاويات Docker مباشرةً. بعد تثبيت WordPress محليًا، تحتاج إلى الانتقال إلىwp-content/pluginsالدليل. هذا هو المكان الذي يتم فيه تخزين جميع الإضافات. قم بإنشاء مجلد جديد، على سبيل المثال.my-first-pluginفي هذا المجلد، يجب عليك إنشاء ملف PHP رئيسي عادةً ما يحمل نفس اسم المجلد، على سبيل المثال:my-first-plugin.phpهذا الملف الرئيسي هو نقطة الدخول للإضافة، ويحتوي على مجموعة من المعلومات التوضيحية الخاصة، تُستخدم لإعلام ووردبريس باسم الإضافة، ووصفها، وإصدارها، ومؤلفها، وما إلى ذلك.
يُنصح بتمكينه في بيئة التطوير.WP_DEBUGنموذج. افتح المجلد الجذري لـ WordPress وابحث عن ملف wp-config.php.wp-config.phpمستند، اعثر على أو أضف السطور التالية:
القراءة الموصى بها دليل عملي لتطوير الإضافات في ووردبريس: بناء أول إضافة لك من الصفر إلى واحد.。
define( ‘WP_DEBUG’, true );
define( ‘WP_DEBUG_LOG’, true );
define( ‘WP_DEBUG_DISPLAY’, false ); سيتم تسجيل الأخطاء والتحذيرات فيwp-content/debug.logفي الوثيقة، تساعدك على تحديد المشاكل بسرعة أثناء عملية التطوير. في الوقت نفسه، يمكن أن يؤدي استخدام محرر كود قوي أو بيئة تطوير متكاملة (مثل VS Code وPhpStorm) إلى تحسين كفاءة التطوير بشكل كبير، وعادةً ما توفر دعمًا جيدًا للصياغة وميزات التلميحات لـ PHP وWordPress.
قم بإنشاء ملف الإضافة (plugin) الخاص بك الأول.
سنقوم بإكمال العملية بأكملها، بدءًا من إنشاء الملف إلى تفعيل الإضافة، من خلال إنشاء إضافة بسيطة باسم “Hello World”. ستعرض هذه الإضافة رسالة ترحيبية في الجزء العلوي من لوحة تحكم الموقع.
في دليل المكوّنات الإضافية الخاص بك.my-first-pluginفي الصين، قم بإنشاء الملف الرئيسي.my-first-plugin.phpيجب أن يبدأ الهيكل الأساسي لمحتوى الملف بتعليقات رأس المكوّن:
<?php
/**
* Plugin Name: 我的第一个插件
* Plugin URI: https://yourwebsite.com/my-first-plugin
* Description: 这是一个用于学习插件开发的示例插件,它将在后台显示欢迎信息。
* Version: 1.0.0
* Author: 开发者姓名
* Author URI: https://yourwebsite.com
* License: GPL v2 or later
* Text Domain: my-first-plugin
* Domain Path: /languages
*/ هذه العناوين التوضيحية إلزامية، ويعتمد ووردبريس عليها للتعرف على الإضافات الخاصة بك وعرضها في صفحة إدارة “الإضافات”. من بينها،Text Domainمخصص للترجمة الدولية (i18n – Internationalization).Domain Pathتحديد الدليل الذي توجد فيه ملفات اللغة (إذا لزم الأمر).
بعد ذلك، نقوم بإضافة الوظائف الأساسية. في هذا المثال، سنستخدمadmin_noticesالـ hooks. أضف الشفرة التالية أسفل تعليقات الرأس:
القراءة الموصى بها دليل كامل لتطوير الإضافات في ووردبريس: دروس عملية من الصفر إلى الخبرة.。
// استخدم خطاف admin_notices لإخراج التحيات في الواجهة الخلفية للمشرف
add_action( ‘admin_notices’, ‘my_first_plugin_display_admin_greeting’ );
/**
* دالة لعرض رسالة ترحيب في الواجهة الخلفية للمشرف
* العودة باطلة
*/
الدالة my_first_plugin_display_display_admin_greeting() {
// تحقق مما إذا كان المستخدم الحالي لديه إذن بالعرض في الواجهة الخلفية فقط.
إذا ( ! المستخدم_الحالي_يمكنه( ‘إدارة_الخيارات’ ) { {
إرجاع;
}
? >}
<div class="notice notice-success is-dismissible">
<p><?php _e( ‘欢迎使用我的第一个插件!插件开发之旅正式开始!’, ‘my-first-plugin’ ); ?></p>
</div>
أنا لا أعرف ماذا أقول. بعد حفظ الملف، قم بتسجيل الدخول إلى لوحة تحكم موقع WordPress الخاص بك، وانتقل إلى صفحة “الإضافات”. يجب أن تتمكن من رؤية الإضافة المسماة “My First Plugin” في قائمة الإضافات. انقر فوق الزر “تفعيل”. بعد التفعيل، قم بتحديث أي صفحة إدارية خلفية (مثل لوحة التحكم) ويجب أن تشاهد رسالة نجاح خضراء تحتوي على عبارة الترحيب التي حددناها في شفرتنا. هذه تنفيذ وظيفي بسيط وكامل يؤكد أن بيئة التطوير وهيكل الإضافات لديك صحيحان.
التقنيات الأساسية لووردبريس: الخطافات والفلاتر.
فهم الخطافات (Hooks) واستخدامها ببراعة هو أمر أساسي في تطوير الإضافات لنظام ووردبريس. تنقسم الخطافات إلى نوعين: خطافات الإجراءات (Actions) وخطافات الفلتر (Filters). تسمح خطافات الإجراءات لك بإدراج وتنفيذ شفرة مخصصة في نقاط زمنية محددة، مثل بعد نشر المقالة أو قبل تحميل رأس الصفحة. لقد استخدمناها أعلاه.admin_noticesإنها مجرد مشبك إجراء. تسمح مشابك الفلتر لك بتعديل البيانات التي يتم إنشاؤها أو نقلها أثناء العملية، مثل تعديل عنوان المقالة أو نتائج استعلام المكوّن الإضافي.
كيف تضيف إجراءً مخصصًا؟
تم تنفيذ الإجراء بنجاح.add_action()إضافة وظيفة. القواعد النحوية هي:add_action( ‘hook_name’, ‘your_function_name’, priority, accepted_args )الأولوية (priority) هي رقم صحيح، وكلما كان الرقم أصغر، كلما تم تنفيذ المهمة في وقت أبكر، والقيمة الافتراضية هي 10. على سبيل المثال، إذا أردت إضافة بعض شفرة HTML مخصصة بعد محتوى المقالة:
add_action( ‘the_content’, ‘my_custom_content_append’ );
function my_custom_content_append( $content ) {
// 只在单篇文章主循环内生效
if ( is_single() && in_the_loop() && is_main_query() ) {
$extra_content = ‘<div class="“my-custom-box”"><p>هذا هو محتوى مخصص تم إضافته من خلال المكوّن الإضافي.</p></div>’ملاحظة: يتم ترجمة هذا النص إلى العربية باستخدام مترجم Google. إذا كنت ترغب في ترجمة دقيقة، فنحن نوصي باستخدام أداة مترجمة متخصصة مثل DeepL أو Google Translate. ملاحظة: على الرغم من ذلك،the_contentإنه فلتر (يحتاج إلى إرجاع النص المعدل).$contentلكن ووردبريس يستخدمها أيضًا كنقطة إطلاق للإجراءات. من الأفضل استخدامadd_filter。
كيف تضيف فلترًا مخصصًا؟
يقوم الفلتر بـadd_filter()إضافة وظيفة. القواعد النحوية مماثلة لـadd_action()مشابه. أحد الأمثلة الشائعة هو تعديل طول مقتطفات المقالات:
add_filter( ‘excerpt_length’, ‘my_custom_excerpt_length’, 999 );
function my_custom_excerpt_length( $length ) {
// 将默认的55个词改为20个词
return 20;
} يمكنك إنشاء إضافاتك الخاصة بحيث يمكن توسيعها أيضًا من قبل مطورين آخرين أو مواضيع. استخدمdo_action()لتعريف مُعلق إجراء، استخدمapply_filters()تعريف مرشح التصفية. هذا أمر أساسي لإنشاء مكونات إضافية قابلة للتخصيص والقابلة للتوسعة.
القراءة الموصى بها دليل كامل لتطوير الإضافات في ووردبريس: من الصفر إلى مستوى متقدم.。
تطوير وظائف المكوّنات الإضافية وأفضل الممارسات.
عندما تصبح وظائف الإضافة أكثر تعقيدًا، يصبح تنظيم الشفرة بشكل جيد، والأمان، وقابلية الصيانة، والأداء أمورًا بالغة الأهمية. ومن الطرق الشائعة استخدام البرمجة الموجهة للكائنات (OOP) لتنظيم هيكل الشفرة، وتغليف الوظائف والبيانات ذات الصلة في فئة رئيسية.
استخدم البرمجة الموجهة للكائنات لتغليف الشفرة.
يمكن أن يساعد إنشاء فئة رئيسية في إدارة حالة الإضافات وطرقها بشكل أفضل، وتجنب تعارض أسماء الدالات. فيما يلي مثال بسيط لهيكل البرمجة الموجهة للكائنات (OOP):
<?php
/**
* Plugin Name: 进阶示例插件
*/
if ( ! class_exists( ‘My_Advanced_Plugin’ ) ) {
class My_Advanced_Plugin {
/**
* 构造方法,用于初始化钩子
*/
public function __construct() {
add_action( ‘init’, array( $this, ‘register_custom_post_type’ ) );
add_action( ‘admin_menu’, array( $this, ‘add_admin_menu_page’ ) );
add_filter( ‘the_title’, array( $this, ‘filter_post_title_prefix’ ), 10, 2 );
}
/**
* 注册一个自定义文章类型
*/
public function register_custom_post_type() {
$args = array(
‘public’ => true,
‘label’ => ‘我的产品’,
‘supports’ => array( ‘title’, ‘editor’, ‘thumbnail’ ),
‘has_archive’ => true,
);
register_post_type( ‘my_product’, $args );
}
/**
* 在文章标题前添加前缀的过滤器
* @param string $title 原标题
* @param int $id 文章ID
* @return string 修改后的标题
*/
public function filter_post_title_prefix( $title, $id = null ) {
if ( ! is_admin() && in_the_loop() ) {
$title = ‘[精品] ’ . $title;
}
return $title;
}
// ... 其他方法
}
// 实例化插件类
new My_Advanced_Plugin();
} يقوم هذا التنظيم بتجميع الوظائف ذات الصلة معًا، مما يجعل الشفرة أكثر وضوحًا وسهلة الإدارة.
حماية أمان وأداء المكونات الإضافية.
الأمان هو الأولوية الأولى في تطوير الإضافات. لا تثق أبدًا في المدخلات التي يقدمها المستخدمون. بالنسبة لجميع الأشياء التي تأتي من$_GET、$_POSTأو$_REQUESTيجب التحقق من البيانات التي تم الحصول عليها (Validation) وتنظيفها (Sanitization) وتجنبها بشكل صحيح (Escaping). تقدم ووردبريس مجموعة من الوظائف المساعدة:
* 验证:check_ajax_referer(), wp_verify_nonce()
* 清理:sanitize_text_field(), sanitize_email(), absint()
* 转义:esc_html(), esc_url(), wp_kses_post()
قبل إخراج أي بيانات إلى HTML أو سمات أو عناوين URL، يجب عليك استخدام دالات التهجئة المناسبة. ومن أجل الأداء، استخدم الخطافات بحكمة حتى لا تقوم بتشغيل استعلامات مكثفة للموارد في كل مرة يتم فيها تحميل الصفحة. ضع في اعتبارك استخدام واجهة برمجة التطبيقات المؤقتة في WordPress لتخزين نتائج الاستعلامات غير المهمة والقابلة لإعادة الاستخدام لفترة من الوقت.
إنشاء صفحة إعدادات المكوّن الإضافي.
يتطلب معظم الإضافات صفحة إعدادات تسمح للمستخدمين بتكوينها. يتم ذلك عادةً من خلالadd_options_page()أوadd_menu_page()مثل الدالات، يتم تحميلها إلىadmin_menuيتم تنفيذ ذلك باستخدام الحُكَّام. يجب استخدام واجهة برمجة التطبيقات لإعدادات الووردبريس لتسجيل الخيارات وتخزينها والتحقق منها بشكل آمن. وهذا يشمل استخدامregister_setting()、add_settings_section()وadd_settings_field()مثل الدالات. إن هذا الأمر لا يضمن الأمان فقط (مثل التحقق من nonce)، بل يوفر أيضًا أسلوبًا موحدًا لواجهة الخلفية في WordPress.
الملخصات
تطوير مكوّنات WordPress هو عملية تحويل الأفكار إلى وظائف، وتبدأ هذه العملية بفهم البنية الأساسية للمكوّنات وإعداد البيئة المحلية. ومن خلال إنشاء أبسط مكوّن “Hello World”، قمنا بممارسة السلسلة الكاملة من إنشاء الملف إلى تفعيل الوظيفة. ويكمن جوهر التطوير في فهم نظام الحلقات القوي في WordPress بشكل عميق واستخدامه بمرونة - وهو ما يشكل جسراً للتفاعل مع نواة WordPress والأجزاء الأخرى. ومع تزايد وظائف المكوّن، تعد الخطوات الأساسية لضمان استقراره وأمنه وقابليته للصيانة والتوسعة هي اعتماد برمجة موجهة للأجسام، واتباع معايير الترميز الآمن (التحقق والتنظيف والهروب)، واستخدام واجهة برمجة التطبيقات للإعدادات لإنشاء صفحات الإعداد. ومن خلال اتباع هذه الإرشادات وأفضل الممارسات، ستتمكن من بناء مكوّنات WordPress عالية الجودة بثقة، بدءًا من أدوات بسيطة إلى تطبيقات معقدة.
الأسئلة الشائعة الأسئلة المتداولة
ما هي المعرفة الأساسية اللازمة لتطوير إضافات WordPress؟
تحتاج إلى معرفة أساسية للغة البرمجة PHP، لأن الإضافات مكتوبة في معظمها بلغة PHP. كما أن معرفة أساسية لـ HTML و CSS و JavaScript ستساعدك على إنشاء إضافات تتفاعل مع الواجهة الأمامية. والأهم من ذلك، يجب أن تكون على دراية بالمفاهيم الأساسية لـ WordPress، مثل المقالات والصفحات والتصنيفات وأدوار المستخدمين، ونظام الخطافات (hooks) بشكل خاص.
كيف يمكن تصحيح أخطاء البرامج الإضافية (الإضافات) لمنصة ووردبريس (WordPress) أثناء عملية التطوير؟
يُنصح بشدة بتمكينه في بيئة التطوير.WP_DEBUGتم شرح الإعدادات ذات الصلة في القسم الخاص بإعداد بيئة النص. سيؤدي ذلك إلى تسجيل أخطاء PHP والتحذيرات والإشعارات في ملف السجل. بالإضافة إلى ذلك، يمكنك استخدامerror_log()دالة أو دالة مساعدة مثلvar_dump()التعاونwp_die()لإخراج قيم المتغيرات للتحقق منها. تعد علامتا التبويب "الكونسول" و"الشبكة" في أدوات مطور المتصفح أساسيتين أيضًا لاكتشاف أخطاء جافا سكريبت وطلبات AJAX.
كيف يتوافق مكوّني الإضافي مع إصدارات مختلفة من ووردبريس؟
في كود المكوّن، يجب عليك التحقق مما إذا كانت هناك وظائف أو فئات معينة موجودة في إصدار WordPress الحالي، ومن ثم استخدامها بعد ذلك. يمكنك استخدامfunction_exists()أوis_admin()إلخ. قم بتقييم الشروط. في وصف المكوّن الإضافي، يمكنك القيام بذلك من خلال التعليقات في رأس المكوّن الإضافي.Requires at least:استخدم الحقل لتحديد الإصدار الأدنى المطلوب من ووردبريس. ومن الأفضل أن تختبر بشكل منتظم توافق المكوّن الإضافي الخاص بك مع أحدث إصدار من ووردبريس الأساسي.
كيف يمكنني أن أجعل إضافتي دولية بحيث تدعم العديد من اللغات؟
تحتاج إلى استخدام وظيفة الترجمة في WordPress لتغليف جميع سلاسل النص التي تحتاج إلى ترجمة. على سبيل المثال، استخدم__( ‘文本’, ‘your-plugin-text-domain’ )لإخراج النص المترجم، استخدم_e( ‘文本’, ‘your-plugin-text-domain’ )اعرض ذلك مباشرةً. تحتاج إلى تعيين ذلك بشكل صحيح في تعليقات رأس المكوّن.Text DomainوDomain Pathبعد ذلك، استخدم أداة مثل Poedit لإنشاء.potملفات القوالب (Template Files)، يمكن للمترجمين استخدامها كأساس لإنشاء الترجمات الخاصة بهم..poو.moملفات اللغة.
بعد الانتهاء من التطوير، كيف يمكن إرسال الإضافة إلى دليل الإضافات الرسمي؟
أولاً، تحتاج إلى تسجيل حساب على الموقع الرسمي لـ WordPress وتقديم الإضافة للمراجعة. يجب أن تتوافق شفرتك مع معايير الترميز الرسمية والإرشادات، بما في ذلك الأمان، وعدم وجود شفرة ضارة، والتوافق مع رخصة GPL. يجب أن يحتوي هيكل دليل الإضافة الخاص بك على ملف PHP الرئيسي، وملف واحد على الأقل.readme.txtالمستندات (التي تتوافق مع معايير محددة)، وكذلك لقطات الشاشة والرموز الاختيارية. قد تستغرق عملية المراجعة بعض الوقت، حيث سيقوم الفريق بفحص شفرتك والتأكد من أنها تتوافق مع المتطلبات.
ما التالي، ما التالي؟
القراءة الموسعة والمعرفة العملية
فيما يلي بعض الموضوعات ذات الصلة بموضوع هذه المقالة وهي مناسبة لمزيد من القراءة المتعمقة. وغالباً ما يكون من الأفضل إعطاء الأولوية للبدء بالمقال الأقرب إلى مشكلتك الحالية ثم التوسع تدريجياً إلى المواضيع المحيطة.
- دليل تطوير إضافات ووردبريس: كيف تبني إضافتك المخصصة الأولى من الصفر
- كيف تصبح مطورًا لإضافات ووردبريس: دليل شامل من الصفر إلى النهاية
- دليل شامل لتطوير إضافات ووردبريس: من المبتدئين إلى الخبراء في إنشاء إضافات متخصصة
- تطوير الإضافات في ووردبريس: من الأساسيات إلى الاحترافية - إنشاء أول إضافة مخصصة لك.
- من الصفر إلى الواحد: دليل شامل لتطوير أول إضافة (Plugin) لموقع ووردبريس (WordPress) الخاص بك خطوة بخطوة