إعداد بيئة تطوير المكوّنات الإضافيّة لـ WordPress.
قبل البدء في كتابة أول سطر من الكود، فإن وجود بيئة تطوير مناسبة يعتبر أساسًا هامًا للعمل بكفاءة عالية. هذا لا يضمن فقط أن يعمل الإضافة (البرنامج الإضافي) بشكل مستقر في بيئات ووردبريس المختلفة، بل يساعد أيضًا بشكل كبير في تحسين كفاءة عمليات التصحيح والا
إعداد بيئة التطوير المحلية
ننصح بشدة بالقيام بعمليات التطوير محليًا، بدلاً من التعامل مباشرة مع الخوادم عبر الإنترنت. يمكنك استخدام أدوات مثل XAMPP، MAMP، Local by Flywheel، أو Docker لإنشاء بيئة خادم محلية تحتوي على PHP، MySQL، وApache/Nginx بسرعة. تأكد من أن إصدار PHP الذي تستخدمه متوافق مع إصدار WordPress الذي تريد استخدامه؛ عادةً ما توصي شركة WordPress بنطاق معين من إصدارات PHP.
محرر الشفرة واختيار الأدوات.
من المهم جدًا اختيار محرر كود قوي ومتطور، مثل VS Code أو PhpStorm أو Sublime Text. عادةً ما توفر هذه المحررات ميزات مثل تمييز الكود النحوي، واقتراحات الكود أثناء الكتابة، والتكامل مع أنظمة إدارة الإصدارات (Version Control). بالإضافة إلى ذلك، يمكن أن يساعد تثبيت بعض مقاطع الكود (Snippets) أو الإضافات (Plugins) المتعلقة بووردبريس (WordPress) في تسريع عملية تطوير المواقع الإلكترونية.add_action、add_filterكتابة الدوال الشائعة الاستخدام.
القراءة الموصى بها إتقان تطوير إضافات ووردبريس من الصفر: بناء وظائف مخصصة وأفضل الممارسات。
إنشاء الملف الرئيسي للإضافة (plugin)
يجب أن يحتوي كل إضافة (plugin) لووردبريس (WordPress) على ملف PHP رئيسي، ويجب أن يتضمن هذا الملف تعليقات تحتوي على معلومات قياسية عن الإضافة في بدايته. هذا الملف يمثل نقطة الدخول الرئيسية للإضافة. على سبيل المثال، إذا كنا نخطط لإنشاء إضافة تسمى “My Custom Greeting”, فيمكن أن يكون اسم الملف الرئيسي…my-custom-greeting.php。
<?php
/**
* Plugin Name: My Custom Greeting
* Plugin URI: https://yourwebsite.com/my-custom-greeting
* Description: 一个简单的插件,用于在网站前台显示自定义问候语。
* Version: 1.0.0
* Author: Your Name
* License: GPL v2 or later
* Text Domain: my-custom-greeting
*/ هذه التعليقات ضرورية، حيث تستخدمها ووردبريس لتحديد المكونات الإضافية (الإضافات) وعرضها في واجهة الإدارة الخلفية.
الهيكل الأساسي للإضافات ومعايير الأمان
إن الإضافة (البرنامج الإضافي) التي تتميز بتركيبة واضحة وتتوافق مع معايير الأمان تمثل الأساس الذي يضمن الصيانة المستمرة وكسب ثقة المستخدمين على المدى الطويل. اتباع معايير البرمجة الرسمية لووردبريس (WordPress) والممارسات ال
استخدم الفئات لتنظيم التعليمات البرمجية
على الرغم من أنه يمكنك استخدام البرمجة الوظيفية النقية، إلا أن استخدام الكلاسات في البرمجة الكائنية (Object-Oriented Programming – OOP) لتغليف وظائف الإضافات (plugins) يعتبر أسلوبًا أكثر حداثة ويُنصح به. هذا يساعد على تجنب تعارض أسماء الدوال ويجعل هيكل الكود أكثر وضوحًا.My_Custom_Greeting。
if ( ! class_exists( 'My_Custom_Greeting' ) ) {
class My_Custom_Greeting {
public function __construct() {
// 构造函数,在这里挂载钩子
}
}
// 初始化插件
new My_Custom_Greeting();
} ! class_exists()الفحص المذكور يهدف إلى منع تكرار تعريف الفئات (classes).
القراءة الموصى بها دليل تعليمي لتطوير الإضافات في ووردبريس: ابني أول توسعة وظيفية لديك من الصفر إلى واحد.。
تحقيق الأمان وفحوصات الصلاحيات
يجب أن تخضع جميع الدوال التي قد تعالج طلبات المستخدمين سواء على الجانب الأمامي (الواجهة البرمجية) أو الجانب الخلفي (الخادم) لعمليات تحقق من الصلاحيات وفحوصات أمان. يوفر ووردبريس (WordPress) الأدوات اللاwp_verify_nonce()وcurrent_user_can()يتم استخدام دوال مثل هذه للمساعدة في التنفيذ. هذا أمر إلزامي في أي صفحة إعدادات للإضافات أو في منطق معالجة النماذج.
دليل المكونات الإضافية وتنظيم الملفات
تساعد هيكلية المجلدات المعقولة في التنظيم والإدارة. قد يتضمن مجلد الإضافات (plugins) النموذجي ما يلي:
الملف الرئيسي. my-custom-greeting.php (موجود في المجلد الرئيسي للإضافة)
- includes/ الدليل: يحتوي على ملفات الكلاسات المسؤولة عن الوظائف الأساسية.
- admin/ المحتويات: يحتوي على الكود المتعلق بالجزء الخلفي (الخادم) من النظام.
- public/ الفهرس: يحتوي على الكود المتعلق بواجهة المستخدم الأمامية.
- assets/ المجلد: يحتوي على ملفات CSS و JavaScript والصور.
- languages/ الدليل: يحتوي على ملفات الترجمة الدولية (.po/.mo).
الميزات الأساسية: تطبيقات عملية للخطافات (hooks) والمرشحات (filters)
الجزء الأساسي من آلية الإضافات (Plugins) في ووردبريس هو ما يُعرف بـ “الخطافات” (Hooks)، والتي تشمل الإجراءات (Actions) والمرشحات (Filters). فهم واستخدام الخطافات بشكل ماهر أمر أساسي لتطوير الإضافات.
استخدم خطافات الحركة لإضافة وظائف.
تسمح خطافات الأعمال (Action Hooks) بتنفيذ كود مخصص في نقاط زمنية محددة، مثل عملية التهيئة (Initialization)، تحميل الصفحة (Page Loading)، أو نشر المقالات (Article Publishing). نحن نستخدمها بشكل شائع في تطوير التطبيقات.add_action()يتم استخدام الدوال لعملية التثبيت (الماونتينج). على سبيل المثال، في…wp_footerأضف تحيتنا في المكان المحدد بالعلامة (“الخطاف”).
فيMy_Custom_Greetingتثبيت (Mounting) في دالة المُنشئ (Constructor) للكلاس:
public function __construct() {
add_action( 'wp_footer', array( $this, 'display_greeting' ) );
} ثم قم بتعريف الدالة الاستدعائية (callback function) المقابلة.display_greeting:
القراءة الموصى بها دليل شامل لتطوير الإضافات في ووردبريس: بناء توسعات احترافية من الصفر.。
public function display_greeting() {
$name = get_option( 'my_greeting_name', '访客' );
echo '<p id="custom-greeting">مرحبًا، '. esc_html($name)'. ’! مرحبًا بك في موقعنا.</p>';
} استخدم خطافات المرشحات (filter hooks) لتعديل المحتوى.
تسمح خيوط الفلاتر (Filter Hooks) بتعديل البيانات التي يولدها ووردبريس أو أي إضافات أخرى. نحن نستخدمها في عملياتنا.add_filter()دوال… على سبيل المثال، تعديل اللاحقة الافتراضية لعنوان المقال.
add_filter( 'the_title', array( $this, 'modify_post_title' ), 10, 2 );
public function modify_post_title( $title, $id ) {
if ( ! is_admin() && in_the_loop() ) {
$title .= ' [推荐阅读]';
}
return $title;
} المعاملات (parameters) الموجودة هنا10إنها تتعلق بمسألة الأولوية.2يعني ذلك أن الدالة المُعاد استدعاؤها (الدالة الاستدعائية) تقبل معاملين كوسائط.$titleو$id)。
إنشاء خطافات مخصصة (Custom Hooks)
يجب أن يوفر الإضافة (البرنامج الإضافي) الناضج أيضًا "خطافات" (hooks) خاصة بها، لكي يتمكن المطورون الآخرون من توسيع وظائفها.do_action()إنشاء خطاف للإجراء (Action Hook)، باستخدام…apply_filters()إنشاء خطاف (hook) للفلتر (filter).
// 在插件某处执行一个自定义动作
do_action( 'my_custom_greeting_before_display', $name );
// 提供一个可过滤的问候语文本
$greeting_text = apply_filters( 'my_custom_greeting_text', '你好,' . $name . '!', $name ); إنشاء واجهة إدارة للإضافة (Plugin Management Interface)
معظم الإضافات تحتاج إلى صفحة إعدادات في الخلفية، تسمح للمستخدمين بتكوين سلوك الإضافة. يوفر ووردبريس مجموعة واسعة من واجهات برمجة التطبيقات (APIs) لإنشاء صفحات القوائم وصفحات الخيارات.
إضافة قائمة الإدارة
الاستفادة منadd_action( ‘admin_menu’, … )نستخدم “الخطافات” (hooks) لإضافة عناصر القائمة. لقد أضفنا صفحة قائمة فرعية للإضافة تقع تحت قسم “الإعدادات”.
add_action( 'admin_menu', array( $this, 'add_admin_menu' ) );
public function add_admin_menu() {
add_options_page(
'自定义问候语设置', // 页面标题
'问候语设置', // 菜单标题
'manage_options', // 所需权限
'my-custom-greeting', // 菜单slug
array( $this, 'render_settings_page' ) // 回调函数,用于输出页面内容
);
} إنشاء صفحة إعدادات ونموذج
في دالة الاستدعاءrender_settings_pageفي هذا السياق، نحتاج إلى إنشاء نموذج (form) واستخدام واجهة برمجة تطبيقات (API) الخاصة بإعدادات ووردبريس (WordPress Settings API) لحفظ البيانات بشكل آمن. أولاً، قم بتسجيل إعداد جديد (new setting).
add_action( 'admin_init', array( $this, 'register_settings' ) );
public function register_settings() {
register_setting(
'my_custom_greeting_options_group', // 选项组名
'my_greeting_name', // 选项名
array( 'sanitize_callback' => 'sanitize_text_field' ) // 清理回调
);
} ثم قم بعرض النموذج في دالة تقديم الصفحة (page rendering function):
public function render_settings_page() {
?>
<div class="wrap">
<h2>إعدادات رسائل التحية المخصصة</h2>
<form method="post" action="/ar/options.php/" data-trp-original-action="options.php">
<?php settings_fields( 'my_custom_greeting_options_group' ); ?>
<table class="form-table">
<tr>
<th scope="row"><label for="greeting_name">اسم الشخص الذي يتم توجيه التحية إليه</label></th>
<td>
<input type="text" id="greeting_name" name="my_greeting_name" value="<?php echo esc_attr( get_option( 'my_greeting_name', '访客' ) ); ?>" class="regular-text" />
<p class="description">الاسم المدخل هنا سيظهر في رسالة الترحيب على الواجهة الأمامية.</p>
</td>
</tr>
</table>
<?php submit_button(); ?>
<input type="hidden" name="trp-form-language" value="ar"/></form>
</div>
أنا لا أعرف ماذا أقول. إضافة السكريبتات وملفات الأنماط (stylesheets)
لجعل واجهة الإدارة أكثر جمالاً أو تفاعلية، من الضروري إضافة أكواد CSS وJavaScript إلى صفحات الإعدادات.admin_enqueue_scriptsقم بإضافة “خطاف” (hook) وتحقق من قيمة “slug” للصفحة للتأكد من أن الصفحة يتم تحميلها فقط عند استخدام إضافتنا.
add_action( 'admin_enqueue_scripts', array( $this, 'enqueue_admin_assets' ) );
public function enqueue_admin_assets( $hook ) {
if ( 'settings_page_my-custom-greeting' !== $hook ) {
return;
}
wp_enqueue_style( 'my-custom-greeting-admin', plugin_dir_url( __FILE__ ) . 'assets/css/admin-style.css' );
wp_enqueue_script( 'my-custom-greeting-admin', plugin_dir_url( __FILE__ ) . 'assets/js/admin-script.js', array( 'jquery' ), '1.0.0', true );
} الملخصات
من خلال الخطوات الموضحة في هذا المقال، أكملنا عملية تطوير إضافة (plugin) كاملة لووردبريس: بدءًا من إعداد البيئة المناسبة وإنشاء هيكل أمني أساسي، مرورًا باستخدام ميزات “الأفعال” (actions) و“مخالب الفلترات” (filter hooks) لتنفيذ الوظائف الأساسية، وأخيرًا إنشاء واجهة إدارة سهلة الاستخدام للمستخدمين. جوهر تطوير الإضافات يكمن في فهم نظام “المخالب” (hook system) في ووردبريس بعمق واتباع معايير الأمان والبرمجة الخاصة به. انطلاقًا من هذه الإضافة البسيطة، يمكنك توسيع وظائفها عن طريق إضافة المزيد من الكلاسات (classes)، استخدام عمليات قاعدة البيانات الأكثر تعقيدًا، دمج واجهات برمجة التطبيقات الخارجية (REST APIs)، أو إنشاء كتل مخصصة (Gutenberg Blocks)، لبناء إضافة متقدمة وسهلة الصيانة.
الأسئلة الشائعة الأسئلة المتداولة
كيف يمكنني تصحيح أخطاء (الديباجات) في إضافة ووردبريس الخاصة بي (####)؟
تفعيل وضع التصحيح (Debugging Mode) في ووردبريس (WordPress) هو أكثر الطرق فعالية للتعامل مع المشكلات التقنية.wp-config.phpفي الملف، سيتم…WP_DEBUGتم تعيين الثابت على قيمةtrueسيتم عرض أخطاء PHP وتحذيراتها وإشعاراتها مباشرة على الصفحة. بالنسبة لعمليات التصحيح الأكثر تعقيدًا، يمكن استخدام…error_log()تقوم الدالة بتسجيل المعلومات في سجل الأخطاء الخاص بالخادم، أو باستخدام أدوات تصحيح أخطاء PHP المتخصصة مثل Xdebug.
كيف يمكن لإضافتي (البرنامج الإضافي) أن تتوافق مع إصدارات مختلفة من لغة PHP؟
أثناء عملية التطوير، يجب تجنب استخدام الدوال في PHP التي هي إما جديدة جدًا أو قديمة للغاية وقد تم التخلي عنها. قم بمراجعة الدليل الرسمي لـ PHP لمعرفة أدنى إصدار مدعوم لكل دالة. يمكن ذكر ذلك في الملف الرئيسي للRequires PHP:تُستخدم علامات الرأس (header tags) لتحديد أدنى إصدار من PHP مطلوب لتشغيل الإضافة، بحيث يقوم ووردبريس (WordPress) بإصدار تحذير عند عدم توافر هذا الشرط.
كيف يمكنني أن أجعل إضافتي تدعم التدويل متعدد اللغات؟
يستخدم ووردبريس إطار عمل GNU gettext لتحقيق التدويل (i18n). أولاً، يجب استخدام علامات معينة في جميع النصوص التي تحتاج إلى ترجمة…__()、_e()أو_x()قم بتغليف الدوال المطلوبة باستخدام أدوات معينة. بعد ذلك، استخدم أداة مثل Poedit لمسح الكود وإنشاء ملفات النتائج..potملفات القوالب… وبالنسبة لكل لغة، يتم إنشاء نسخة مقابلة منها..poو.moملف. وأخيرًا، استخدمه عند تحميل المكوّن الإضافي.load_plugin_textdomain()تحميل الترجمة للوظيفة.
ما الذي يجب الانتباه إليه عند تقديم إضافة (plugin) إلى الدليل الرسمي لووردبريس (WordPress)?
قبل التقديم، يرجى التأكد من أن الكود يتبع معايير ترميز وووردبريس (WordPress) ومواصفات الوثائق بدقة. يجب أن يكون الإضافة (البرنامج الإضافي) مرخصة برخصة GPLv2 أو أعلى. من الضروري تقديم معلومات مفصلةreadme.txtالملف يحتوي على وصف للمنتج، خطوات التثبيت، لقطات شاشة، الأسئلة الشائعة، وغيرها. يجب أن يكون الكود الخاص بك آمنًا وخاليًا من أي سلوكيات ضارة، ولا يجوز أن يعتمد على الرموز المختصرة (Shortcodes) في تنفيذ وظائفه الأساسية؛ بل يجب أن يكون جاهزًا للاستخدام فورًا بعد التثبيت. بعد ت
ما التالي، ما التالي؟
القراءة الموسعة والمعرفة العملية
فيما يلي بعض الموضوعات ذات الصلة بموضوع هذه المقالة وهي مناسبة لمزيد من القراءة المتعمقة. وغالباً ما يكون من الأفضل إعطاء الأولوية للبدء بالمقال الأقرب إلى مشكلتك الحالية ثم التوسع تدريجياً إلى المواضيع المحيطة.
- كيفية اختيار وتخصيص تصميم ووردبريس المثالي الذي يناسب احتياجاتك؟
- دليل تطوير إضافات ووردبريس: كيف تبني إضافتك المخصصة الأولى من الصفر
- كيف تصبح مطورًا لإضافات ووردبريس: دليل شامل من الصفر إلى النهاية
- من الصفر إلى الواحد: دليل شامل وخطوات عملية لبناء مواقع إلكترونية مهنية باستخدام WordPress
- دليل شامل لتطوير إضافات ووردبريس: من المبتدئين إلى الخبراء في إنشاء إضافات متخصصة