إذا كنت ترغب في تطوير إضافة (Plugin) لووردبريس (WordPress)، فأول شيء يجب أن تفهمه هو التركيبة الأساسية لهذه الإضافة. في الأساس، الإضافة عبارة عن ملف أو أكثر من ملفات بلغة PHP، وهي مصممة وفقًا لمواصفات ووردبريس المحددة. تتفاعل هذه الملفات مع النظام الأساسي لووردبريس من خلال نظام “الخطافات” (Hooks)، مما يسمح بتوسيع أو تعديل وظائف الموقع. لتطوير إضافة، تحتاج على الأقل إلى ملف رئيسي يحتوي على تعليقات رأسية قياسية للإضافة؛ هذه التعليقات هي المفتاح الذي يسمح لووردبريس بتحديد أن الملف يمثل إضافة حقيق
إنشاء أول إضافة (plugin) خاصة بك
دعونا نبدأ بإنشاء أبسط إضافة (“plugin”) من نوع “Hello World”. سيساعدك هذا العملية على التعرف على هيكل الإضافات، بالإضافة إلى خطوات تفعيلها وتعطيلها.
إنشاء ملف رئيسي للإضافة (plugin main file)
أولاً، في مجلد تثبيت WordPress الخاص بك،wp-content/pluginsداخل المجلد، قم بإنشاء مجلد جديد، على سبيل المثال…my-first-pluginداخل هذا المجلد، قم بإنشاء ملف بالاسمmy-first-plugin.phpهذا هو الملف الرئيسي للغة PHP. عادةً ما يكون اسم هذا الملف مطابقًا لاسم المجلد الذي يحتوي عليه.
القراءة الموصى بها دليل نهائي لتطوير إضافات ووردبريس: كيفية بناء أول إضافة خاصة بك من الصفر。
افتحmy-first-plugin.phpللملف، أدخل المعلومات الخاصة برأس الإضافة (plugin header) وفقًا للمعايير التالية:
<?php
/**
* Plugin Name: 我的第一个插件
* Plugin URI: https://example.com/my-first-plugin
* Description: 这是一个用于学习的简单Hello World插件。
* Version: 1.0.0
* Author: 你的名字
* Author URI: https://example.com
* License: GPL v2 or later
* Text Domain: my-first-plugin
*/ هذا التعليق في غاية الأهمية؛ فقد يقوم ووردبريس (WordPress) بمسح المحتوى للبحث عن أي تعليقات ضرورية أو مهمة.wp-content/pluginsوجميع ملفات PHP الموجودة في المجلدات الفرعية التابعة له.Plugin Name:يقوم النظام بتحديد المكونات الإضافية (البرامج الخارجية) المتاحة، ثم يعرضها على صفحة إدارة المكونات الإضافية في الواجهة الخلفية.
تنفيذ الميزات الأساسية وتفعيل الخطافات (activation hooks)
في الخطوة التالية، سنضيف ميزة بسيطة للإضافة: عرض سطر من النص المخصص في أسفل صفحات الموقع. كما سنستخدم مخالب دورة حياة (lifecycle hooks) في ووردبريس (WordPress) لعرض العمليات التي يمكن تنفيذها عند تفعيل الإضافة أو تعطيلها.
أسفل تعليقات الرأس، استمر في إضافة الكود التالي:
// 定义一个函数,在页脚输出信息
function my_first_plugin_display_footer_text() {
echo '<p style="text-align: center;">مرحبًا بكم في استخدام أول إضافة (Plugin) لي لموقع ووردبريس (WordPress) الخاص بي!</p>';
}
// 使用 ‘wp_footer’ 动作钩子挂载我们的函数
add_action( 'wp_footer', 'my_first_plugin_display_footer_text' );
// 插件激活时执行的操作
function my_first_plugin_activate() {
// 可能在这里创建数据库表、设置默认选项等
update_option( 'my_first_plugin_installed', current_time( 'mysql' ) );
}
register_activation_hook( __FILE__, 'my_first_plugin_activate' );
// 插件停用时执行的操作
function my_first_plugin_deactivate() {
// 清理临时数据,但保留可能由用户创建的数据
delete_option( 'my_first_plugin_installed' );
}
register_deactivation_hook( __FILE__, 'my_first_plugin_deactivate' ); الآن، قم بتسجيل الدخول إلى واجهة ووردبريس الخلفية الخاصة بك، ثم اذهب إلى صفحة “الإضافات” (Plugins). يجب أن ترى إضافة تحمل اسم “My First Plugin” (إضافتي الأولى). انقر على “تفعيلها” (Enable it)، ثم قم بزيارة الصفحة الأمامية لموقعك واسحب الشاشة إلى الأسفل؛ يجب أن ترى النص المخصص الذي تم إضافته. هذا المثال البسيط يوضح العملية الأساسية لإنشاء إضافة وتشغيلها في ووردبريس.
القراءة الموصى بها دليل كامل لتطوير الإضافات في ووردبريس: بناء أول إضافة لك من الصفر إلى واحد.。
فهم عميق لنظام الخيوط (Hooks) في ووردبريس (WordPress)
الخطافات (Hooks) هي الأساس في تطوير إضافات ووردبريس (WordPress plugins). فهي تسمح لك بإدخال كودك الخاص في نقاط محددة أثناء تنفيذ الكود الأساسي لووردبريس، دون الحاجة إلى تعديل الملفات الأساسية نفسها. تنقسم الخطافات بشكل رئيسي إلى نوعين: الإجراءات (Actions) والمرشحات (Filters).
استخدام خطافات الأفعال (Action Hooks)
تُستخدم “خطافات الأفعال” (Action Hooks) لتنفيذ كود معين عند حدوث أحداث معينة، مثل نشر مقالة أو تحميل رأس الصفحة أو قاعدة الصفحة. لا يُتوقع من هذه الخطافات إرجاع أي قيم؛ فهي مجرد أداة لتنفيذ كود بشكل مباشر. لقwp_footerهذا هو خطاف الإجراء (Action Hook).
مثال شائع آخر هو…initالهاك (Hook)، يتم تفعيله أثناء تهيئة ووردبريس (WordPress)، وغالبًا ما يُستخدم لتسجيل أنواع المقالات المخصصة أو التصنيفات (Categories).
function my_plugin_custom_init() {
// 在这里注册自定义文章类型
}
add_action( 'init', 'my_plugin_custom_init' ); تتم عملية تنفيذ “خطافات الإجراءات” (Action Hooks) من خلال…add_action( $hook_name, $function_to_add, $priority, $accepted_args )تثبيت الدوال (Function Mounting).
استخدام خطافات المرشحات (Filter Hooks)
تُستخدم “خطافات المرشحات” (filter hooks) لتعديل البيانات. تُمرر إليك هذه البيانات قبل أن يتم استخدامها (مثل حفظها في قاعدة البيانات أو عرضها في المتصفح)، وبعد أن تقوم بمعالجتها، تقوم بإرجاع الthe_contentتسمح لك عوامل التصفية بتعديل محتوى المقالة.
function my_plugin_add_disclaimer_to_content( $content ) {
if ( is_single() ) {
$disclaimer = '<p><em>تمت معالجة هذا المقال بواسطة إضافتي (البرنامج الإضافي).</em></p>';
$content .= $disclaimer;
}
return $content; // 必须返回修改后的内容
}
add_filter( 'the_content', 'my_plugin_add_disclaimer_to_content' ); تم تنفيذ خطوات تثبيت خطافات المرشحات (filter hooks) بنجاح.add_filter( $hook_name, $function_to_add, $priority, $accepted_args )تثبيت الدوال (Function Mounting) – الأولوية (Priority)$priorityتحدد هذه القاعدة ترتيب تنفيذ الدوال المتعددة عند تثبيتها على نفس المنصة (hook)؛ كلما كان الرقم أصغر، كانت الأولوية أعلى.
القراءة الموصى بها دليل للمبتدئين في تطوير الإضافات في ووردبريس: بناء أول إضافة وظيفية لديك من الصفر.。
أفضل ممارسات لبنية المكونات الإضافية والأمان
مع تعقيد وظائف الإضافات (البرامج الإضافية)، فإن وجود هيكلية جيدة وإجراءات أمنية صارمة أمر بالغ الأهمية لضمان استقرار الإضافات وقابليتها للصيانة وأمانها.
استخدام برمجة التوجه الكائني (Object-Oriented Programming).
对于功能丰富的插件,建议使用类(Class)来组织代码。这有助于封装功能,避免函数名冲突,并使代码结构更清晰。
<?php
/**
* Plugin Name: 高级示例插件
*/
if ( ! class_exists( 'Advanced_Sample_Plugin' ) ) {
class Advanced_Sample_Plugin {
public function __construct() {
// 在构造函数中挂载钩子
add_action( 'wp_footer', array( $this, 'display_message' ) );
add_filter( 'the_title', array( $this, 'modify_title' ) );
}
public function display_message() {
echo '<p>رسالة من فئة الإضافات المتقدمة.</p>';
}
public function modify_title( $title ) {
return '前缀 - ' . $title;
}
}
// 初始化插件类
new Advanced_Sample_Plugin();
} تنفيذ إجراءات الحماية الأمنية
أمان إضافات ووردبريس أمر في غاية الأهمية. المبدأ الأساسي هو: لا تثق أبدًا بالمدخلات القادمة من المستخدمين. كل المعلومات التي تأتي من المستخدمين يجب أن تخضع للتحقق والتدقيق قبل استخدامها في النظ$_GET,$_POST,$_COOKIEيجب التحقق من صحة البيانات المسترجعة من المتغيرات فائقة العالمية (super-global variables)، وتنقيتها، وتنفيذ عمليات تهريب الرموز (escaping) عليها.
1. التحقق: فحص ما إذا كانت البيانات تتوافق مع الصيغة المتوقعة (مثل ما إذا كانت عناوين بريد إلكتروني أو أرقام).sanitize_email(),is_email()وغيرها من الدوال.
٢. التنظيف: إزالة الأحرف غير القانونية أو غير الآمنة من البيانات. بالنسبة للمدخلات النصية، يتم استخدام…sanitize_text_field()بالنسبة للمحتوى الذي يسمح بوجود HTML، يتم استخدام…wp_kses_post()أوwp_kses()。
3. التهريب (Escaping): عند إخراج البيانات إلى HTML أو JavaScript أو عناوين URL، يجب التأكد من ترميزها بشكل آمن. استخدم الطرق المناسبة لتجنب أي مشاكل أمنية محتملة.esc_html(),esc_js(),esc_url()وغيرها من الدوال.
على سبيل المثال، عند التعامل مع خاصية رمز قصير (short code attribute):
function my_shortcode_handler( $atts ) {
// 使用 shortcode_atts 设置默认值并提取属性
$atts = shortcode_atts( array(
'url' => '#',
), $atts, 'my_shortcode' );
// 清理并转义 URL 属性
$clean_url = esc_url( $atts['url'] );
return "<a href='/ar/{$clean_url}/'>رابط آمن</a>"php
add_shortcode('my_shortcode', 'my_shortcode_handler'); إضافة واجهة إدارة للإضافة ودعم الترجمة الدولية (التعددية اللغوية).
عادةً ما يحتاج الإضافة (plugin) الناضجة إلى خيارات تكوين (configuration options)، ويجب أن يتم أخذ دعم اللغات المتعددة (multi-language support) بعين الاعتبار.
إنشاء صفحة لإدارة الإعدادات
يمكنك استخدام واجهة برمجة التطبيقات (API) الخاصة بإعدادات ووردبريس (WordPress Settings API) لإنشاء صفحات إدارة آمنة وموحدة. هذه الطريقة موصى بها، حيث تتولى مهمة التعامل مع الجوانب الأمنية (مثل التحقق من البيانات باستخدام معرفات عشوائية – nonces) بالإضافة إلى ضم
فيما يلي مثال مبسط لإضافة قائمة رئيسية وصفحة للإعدادات:
class My_Plugin_Admin {
public function __construct() {
add_action( 'admin_menu', array( $this, 'add_admin_menu' ) );
add_action( 'admin_init', array( $this, 'settings_init' ) );
}
public function add_admin_menu() {
add_menu_page(
'我的插件设置', // 页面标题
'我的插件', // 菜单标题
'manage_options', // 权限
'my-plugin', // 菜单slug
array( $this, 'options_page_html' ) // 回调函数,输出页面内容
);
}
public function settings_init() {
register_setting( 'my_plugin_settings', 'my_plugin_options' ); // 注册设置
// 添加设置区域和字段
add_settings_section( 'my_plugin_section', '主要设置', null, 'my-plugin' );
add_settings_field( 'api_key', 'API密钥', array( $this, 'api_key_field_html' ), 'my-plugin', 'my_plugin_section' );
}
public function api_key_field_html() {
$options = get_option( 'my_plugin_options' );
?>
<input type='text' name='my_plugin_options[api_key]' value='<?php echo esc_attr( $options['api_key'] ?? '' ); ?>'>
<?php
}
public function options_page_html() {
// 检查用户权限
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_plugin_settings' );
do_settings_sections( 'my-plugin' );
submit_button();
?>
<input type="hidden" name="trp-form-language" value="ar"/></form>
</div>
<?php
}
}
new My_Plugin_Admin(); إنجاز عملية تدويل المكوّنات الإضافية.
لكي يتمكن المستخدمون حول العالم من استخدام الإضافة، من الضروري دعمها بلغات متعددة. ويتم تحقيق ذلك عن طريق…__( ‘Text’, ’text-domain’ )و_e( ‘Text’, ’text-domain’ )تم تنفيذ ذلك عن طريق تغليف دوال الترجمة بجميع النصوص المرئية للمستخدمين. لقد قمت بتعريف هذه الدوال في تعليقات بداية الإضافة (plugin header comments) مسبقًا.Text Domain: my-first-pluginإنه مُعد خصيصًا لهذا الغرض.
1. في الكود، استخدم دالة الترجمة لجميع السلاسل النصية التي تحتاج إلى ترجمة.
echo __( ‘欢迎使用我的插件!’, ‘my-first-plugin’ );
$title = esc_html__( ‘设置页面’, ‘my-first-plugin’ ); ٢. استخدم أداة مثل Poedit لمسح سلاسل النصوص المترجمة الموجودة في كود الإضافات، ومن ثم إنشاء ملفات تحتوي على هذه السلاسل بشكل منظم..potملفات القوالب؛ يقوم المترجمون بالاعتماد عليها لإنشاء نسخ مناسبة لكل لغة..poوالمُجمَع (المُترجم) بعد عملية التجميع (الترجمة)..moالملفات (مثل…)zh_CN.po/mo)。
3. ضع ملفات اللغات هذه في مكان الإضافة (البرنامج الإضافي).languagesالملفات موجودة داخل المجلد. سيقوم ووردبريس (WordPress) تلقائيًا بتحميل الترجمات المناسبة بناءً على إعدادات لغة الموقع.
الملخصات
تطوير إضافات ووردبريس (WordPress plugins) هو عملية تتراوح من كتابة سكريبتات بسيطة إلى تطبيقات معقدة. الأساس في هذه العملية يكمن في فهم نظام الخطافات (hooks) واستخدامه ببراعة، حيث يتم دمج الوظائف التي تطورها بشكل سلس مع دورة حياة ووردبريس من خلال الإجراءات (actions) والمرشحات (filters). اتباع مفاهيم البنية التحتية القائمة على الكائنات (object-oriented architecture) يساعد على تحسين تنظيم الكود وسهولة صيانته. الأمان يعتبر حجر الزاوية في عملية التطوير؛ لذا يجب التحقق من أي بيانات يدخلها المستخدمون وتنقيتها وتهيئتها بشكل صحيح قبل عرضها. أخيرًا، يمكنك إنشاء واجهة خلفية متقدمة باستخدام واجهة برمجة التطبيقات (Settings API)، واستخدام وظائف التدويل (internationalization functions) لجعل إضافتك متاحةmy-first-plugin.phpابدأ بتطبيق هذه المفاهيم تدريجياً، وستتمكن من تطوير إضافات ووردبريس قوية وآمنة ومحبوبة من قبل المستخدمين.
الأسئلة الشائعة الأسئلة المتداولة
ما هي المعرفة الأساسية المطلوبة لتطوير إضافات (plugins) لبرنامج ووردبريس (WordPress)؟
يجب أن تتقن لغة البرمجة PHP، لأن معظم الإضافات (البرامج الإضافية لموقع ووردبريس) مكتوبة بلغة PHP. بالإضافة إلى ذلك، من الضروري أن يكون لديك معرفة أساسية بلغات HTML وCSS وJavaScript، وذلك لبناء واجهات المستخدم الأمامية وتحقيق التفاعلات بينها. والأهم من ذلك، فهم آليات عمل ووردبريس الأساسية، مثل القوالب (Themes)، والأدوات المساعدة (Hooks)، والحلقات التنفيذية (Loops)، وطرق تخزين البيان
هل يمكنني اختبار الإضافة محليًا دون أن يؤثر ذلك على الموقع الإلكتروني عبر الإنترنت؟
بالتأكيد يمكن ذلك، وهو أمر موصى به بشدة. يجب عليك تطوير الإضافات (البرامج الإضافية) في بيئة التطوير المحلية (مثل استخدام أدوات مثل XAMPP، MAMP، أو Local by Flywheel) أو على خادم اختبار مستقل. هذا سيساعدك على تجنب حدوث أخطاء في الكود قد تؤدي إلى تعطل الموقع الإلكتروني أو فقدان البيانات.
كيف يمكنني تصحيح أخطاء كود الإضافة (البرنامج الإضافي) الخاص بي؟
يوفر ووردبريس العديد من أدوات التصحيح والتحليل (debugging tools). أولاً،wp-config.phpتفعيل وضع التصحيح في الملف: التعريفWP_DEBUGالثوابت هي قيم غير قابلة للتغيير.trueسيتم عرض أخطاء PHP وتحذيراتها وإشعاراتها مباشرة على الصفحة. بالنسبة لعمليات التصحيح الأكثر تعقيدًا، يمكن استخدام…error_log()تقوم الدالة بكتابة المعلومات إلى سجل أخطاء الخادم، أو باستخدام أداة تصحيح الأخطاء المتخصصة مثل Query Monitor، والتي يمكن أن توفر معلومات مفصلة حول استعلامات قاعدة البيانات والمكونات المستخدمة (الهوكات – hooks) وأخطاء لغة PHP وغيرها.
بعد الانتهاء من تطوير الإضافة، كيف يمكن تقديمها إلى الدليل الرسمي لووردبريس (WordPress Official Directory)؟
ستحتاج إلى زيارة موقع WordPress.org وإنشاء حساب هناك. بعد ذلك، ستقوم بتحميل كود الإضافة الخاصة بك باستخدام أداة Subversion (SVN) وتقديمه إلى مستودع SVN الذي توفره ووردبريس. قبل عملية الإرسال، تأكد من أن كود الإضافة يتوافق مع المعايير والإرشادات الرسمية لتطوير الإضافات، والتي تشمل الأمان، جودة الكود، الوثائق، ودعم اللغات الدولية. بعد الموافقة على الإضافة، ستظهر في الدليل الرسمي لووردبريس حيث يمكن للمستخدمين تنزيلها وتثبيتها.
ما التالي، ما التالي؟
القراءة الموسعة والمعرفة العملية
فيما يلي بعض الموضوعات ذات الصلة بموضوع هذه المقالة وهي مناسبة لمزيد من القراءة المتعمقة. وغالباً ما يكون من الأفضل إعطاء الأولوية للبدء بالمقال الأقرب إلى مشكلتك الحالية ثم التوسع تدريجياً إلى المواضيع المحيطة.
- 10 إضافات WordPress موصى بها لعام 2026 لتحسين أداء الموقع وأمانه
- تحليل متعمق لـ WooCommerce: بناء موقع تجاري إلكتروني قوي على WordPress من الصفر
- أفضل 10 إضافات لـ WordPress يجب تثبيتها في عام 2026 لتحسين أداء الموقع وزيادة أمانه
- ١٠ إضافات WordPress عملية ينصح باستخدامها لتحسين أداء الموقع وزيادة أمانه بشكل كبير
- ١٠ إضافات أساسية لتحسين أداء وأمان مواقع ووردبريس