الاستعدادات وإعداد البيئة.
قبل البدء في كتابة الكود، تحتاج إلى بيئة تطوير مناسبة. تتضمن هذه البيئة تثبيتًا محليًا لبرنامج ووردبريس (WordPress) بالإضافة إلى محرر كود. يُنصح باستخدام أدوات مثل XAMPP أو MAMP أو Local by Flywheel أو Laragon لإنشاء بيئة خادم محلية بسرعة. تأكد من أن بيئتك تعمل بإصدارات حديثة من لغة PHP (يُفضل إصدار 7.4 أو أعلى) وقواعد البيانات MySQL/MariaDB.
بعد ذلك، من الضروري أن تفهم الهيكل الأساسي لإضافات ووردبريس (WordPress plugins). الملف الأساسي في أي إضافة هو ملف PHP رئيسي، ويمكن تخصيص اسم هذا الملف واسم المجلد الذي يحتوي عليه، ولكن يجب أن يحتوي على تعليق خاص يُعرف بـ “plugin header”، وذلك لإعلام ووردبريس بوجود الإضافة. يمكنك العثور على هذا الملف في مجلد تثبيت ووردبريس. wp-content/plugins قم بإنشاء مجلد جديد داخل المجلد الحالي، على سبيل المثال: my-first-plugin。
داخل هذا المجلد، قم بإنشاء ملف الإضافة الرئيسية الخاصة بك، ويمكن أن تسميه على سبيل المثال: my-first-plugin.phpيجب أن يتضمن بداية هذا الملف تعليقات معلومات الإضافة (البرنامج الإضافي) القياسية.
القراءة الموصى بها دليل تعليمي لتطوير الإضافات في ووردبريس: إنشاء أول توسعة وظيفية مخصصة من الصفر.。
قم بإنشاء ملف الإضافة (plugin) الخاص بك الأول.
الآن، دعونا نبدأ في إنشاء الهيكل الأساسي للإضافة. في دليل الإضافات الخاص بك، افتح الملف الرئيسي لل PHP واكتب المعلومات القياسية لرأس الإضافة كما يلي.
<?php
/**
* Plugin Name: 我的第一个插件
* Plugin URI: https://example.com/my-first-plugin
* Description: 这是一个用于学习的 WordPress 插件示例。
* Version: 1.0.0
* Author: 你的名字
* Author URI: https://example.com
* License: GPL v2 or later
* Text Domain: my-first-plugin
* Domain Path: /languages
*/ هذا التعليق هو المفتاح الذي يسمح لووردبريس (WordPress) بتحديد المكونات الإضافية (الإضافات – plugins).Plugin Name هذا الحقل إلزامي، بينما باقي الحقول اختيارية. بعد حفظ الملف، ستتمكن من رؤية هذا الإضافة الجديدة في صفحة “الإضافات” (Plugins) داخل واجهة ووردبريس الخلفية وتفعيلها. حاليًا، لا تحتوي هذه الإضافة على أي وظائف.
إضافة ميزة بسيطة للإضافة (plugin).
أبسط ميزة يمكن إضافتها هي إنشاء قائمة إدارة مخصصة في واجهة إدارة الموقع الإلكتروني. سنستخدم… add_action تم تثبيت الدالة (Function) بنجاح. admin_menu هذا الحركة مرتبطة بخطاف معين.
في ملف الإضافة الرئيسي، بعد كتلة التعليقات، أضف الكود التالي:
// 在管理菜单中添加一个顶级菜单
function mfp_add_admin_menu() {
add_menu_page(
'我的第一个插件设置', // 页面标题
'我的插件', // 菜单标题
'manage_options', // 权限要求
'my-first-plugin', // 菜单 slug
'mfp_settings_page', // 回调函数,用于输出页面内容
'dashicons-admin-generic', // 图标(可选)
6 // 菜单位置(可选)
);
}
add_action('admin_menu', 'mfp_add_admin_menu');
// 定义设置页面的回调函数
function mfp_settings_page() {
?>
<div class="wrap">
<h1><?php echo esc_html(get_admin_page_title()); ?></h1>
<p>مرحبًا بكم في صفحة إعدادات أول إضافة (plugin) لي!</p>
<form method="post" action="/ar/options.php/" data-trp-original-action="options.php">
<?php
// 后续可以在这里添加设置字段
?>
<p class="submit">
<input type="submit" name="submit" id="submit" class="button button-primary" value="حفظ التغييرات">
</p>
<input type="hidden" name="trp-form-language" value="ar"/></form>
</div>
أنا لا أعرف ماذا أقول. هذا الكود يقوم بإنشاء قائمة رئيسية جديدة باسم “إضافاتي” (My Plugins)، وعند النقر عليها يتم فتح صفحة إعدادات بسيطة. تم استخدام تقنيات معينة في تنفيذ هذا الكود. add_menu_page تم استخدام دالة لتسجيل القائمة، وتم تعريف دالة استدعاء مرتدة (callback function). mfp_settings_page لتقديم محتوى الصفحة بشكل صحيح.
القراءة الموصى بها دليل للبدء في تطوير إضافات ووردبريس: كيفية بناء أول إضافة وظيفية الخاصة بك من الصفر。
استخدام الخطافات (hooks) والمرشحات (filters) لتوسيع الوظائف
تكمن قوة ووردبريس الأساسية في بنيتها المبنية على الإضافات (plugins)، والتي يتم تحقيقها بشكل رئيسي من خلال “خطافات الأفعال” (action hooks) و“خطافات المرشحات” (filter hooks). تسمح خطافات الأفعال بتنفيذ كود مخصص في أوقات محددة، بينما تسمح خطافات المرشحات بتعديل البيانات.
استخدم خطافات الأفعال (Action Hooks) لإضافة حواشي صفحة (Footnotes) إلى المحتوى.
لنفترض أننا نريد إضافة نص مخصص تلقائيًا في نهاية جميع المقالات على الموقع. يمكن تحقيق ذلك عن طريق تثبيت (ما يُعرف بـ “المكونات الإضافية” أو “الإضافات”) على الموقع. the_content يتم تنفيذ هذا عن طريق خاصية “hook” للفلتر. لاحظ أنه، على الرغم من أن الاسم هو “فلتر”, إلا أن… the_content يُستخدم عادةً لتعديل محتوى المقالات المنشورة.
// 在文章内容末尾添加自定义文本
function mfp_append_text_to_content($content) {
// 确保只在主循环的单篇文章页面添加
if (is_single() && in_the_loop() && is_main_query()) {
$custom_text = '<p><em>تم تقديم هذا المقال لكم بواسطة “أول إضافة لي”.</em></p>';
$content .= $custom_text;
}
return $content;
}
add_filter('the_content', 'mfp_append_text_to_content'); هذه الدالة mfp_append_text_to_content استلام محتوى المقال الأصلي $contentبعد التحقق من شروط السياق (للتأكد من أنها صفحة مقالة فردية)، يتم إضافة قطعة نص مخصصة إلى نهاية المحتوى، ثم يتم إرجاع المحتوى المعدل في النهاية. add_filter قم بتسجيلها. the_content خطاف.
إنشاء خيارات إضافية قابلة للتكوين
عادةً ما يحتاج الإضافة (البرامج الإضافية) العملية إلى بعض الخيارات التي يمكن للمستخدمين تكوينها بأنفسهم. يوفر ووردبريس (WordPress) واجهة برمجة تطبيقات (API) للإعدادات للتعامل مع هذه الخيارات وإدارتها بشكل آمن. سنقوم بإضافة حقل نصي بسيط إلى صفحة الإ
أولاً، نحتاج إلى تسجيل إعدادات جديدة وإضافتها إلى صفحة القائمة الموجودة بالفعل.
// 初始化插件设置
function mfp_settings_init() {
// 注册一个新的设置到 “reading” 组(或自定义组)
register_setting('mfp_plugin_settings', 'mfp_custom_message');
// 在现有页面内添加一个设置区域
add_settings_section(
'mfp_section_id',
'自定义消息设置',
'mfp_section_callback',
'my-first-plugin'
);
// 向该区域添加一个字段
add_settings_field(
'mfp_field_id',
'页脚消息',
'mfp_field_callback',
'my-first-plugin',
'mfp_section_id'
);
}
add_action('admin_init', 'mfp_settings_init');
// 区域描述回调函数
function mfp_section_callback() {
echo '<p>قم بتكوين الإضافة لعرض الرسالة في نهاية المقال.</p>';
}
// 字段输出回调函数
function mfp_field_callback() {
// 从数据库中获取已保存的选项值
$message = get_option('mfp_custom_message', '本文由“我的第一个插件”为您呈现。');
echo '<input type="text" name="mfp_custom_message" value="' . esc_attr($message) . '" class="regular-text">'echo '<p class="description">أدخل الرسالة التي تريد عرضها في نهاية كل مقال.</p>';
} ثم، من الضروري تعديل ما تم تعريفه مسبقًا. mfp_settings_page دالة لعرض الحقول المضبوطة في النموذج.
القراءة الموصى بها من التعلم الأساسي إلى الإتقان الكامل: دليل شامل ودروس عملية لتطوير إضافات ووردبريس (WordPress Plugins)。
// 更新后的设置页面回调函数
function mfp_settings_page() {
?>
<div class="wrap">
<h1><?php echo esc_html(get_admin_page_title()); ?></h1>
<form method="post" action="/ar/options.php/" data-trp-original-action="options.php">
<?php
// 输出设置字段、安全随机数和设置组
settings_fields('mfp_plugin_settings');
do_settings_sections('my-first-plugin');
submit_button();
?>
<input type="hidden" name="trp-form-language" value="ar"/></form>
</div>
أنا لا أعرف ماذا أقول. أخيرًا، قم بتحديث الدالة التي كانت تضيف النصوص سابقًا بحيث تستخدم خيارات قابلة للتكوين.
function mfp_append_text_to_content($content) {
if (is_single() && in_the_loop() && is_main_query()) {
// 从选项中获取自定义消息,如果不存在则使用默认值
$custom_text = get_option('mfp_custom_message', '本文由“我的第一个插件”为您呈现。');
if (!empty($custom_text)) {
$content .= '<p><em>'`. wp_kses_post($custom_text)`.'</em></p>';
}
}
return $content;
} تدويل الإضافات (Plugins) والاستعداد لنشرها
لكي يتمكن المستخدمون حول العالم من استخدام الإضافة، فإن التدويل (Internationalization) يعتبر خطوة مهمة للغاية. وهذا يتضمن استخدام حقول النصوص ودوال الترجمة لتغليف جميع السلاسل النصية المرئية للمستخدمين.
استخدم دالة الترجمة لتغليف النص.
أنت بحاجة إلى ترجمة جميع السلاسل النصية التي يتم عرضها داخل الإضافة (مثل…). echo النص الذي يتم إرجاعه بواسطة “أو” (or) يجب أن يتم تغليفه باستخدام دالة ترجمة محددة. أكثر الطرق شيوعًا استخدام دالة الترجمة المناسبة للنصوص المركبة التي تحتوي على علامات ترقيم أو رموز خ () يُستخدم لترجمة النصوص وإرجاعها في شكل سلسلات من الأحرف. esc_html__() يُستخدم لترجمة النصوص وتهريب علامات HTML (الترميزات المستخدمة في تنسيق صفحات الويب).
تعديل مثال الكود السابق:
// 在管理菜单中添加一个顶级菜单(国际化版本)
function mfp_add_admin_menu() {
add_menu_page(
__('我的第一个插件设置', 'my-first-plugin'), // 页面标题
__('我的插件', 'my-first-plugin'), // 菜单标题
'manage_options',
'my-first-plugin',
'mfp_settings_page',
'dashicons-admin-generic',
6
);
}
add_action('admin_menu', 'mfp_add_admin_menu');
// 区域描述回调函数(国际化版本)
function mfp_section_callback() {
echo '<p>' . esc_html__('在这里配置插件在文章末尾显示的消息。', 'my-first-plugin') . '</p>';
} في الوقت نفسه، من الضروري تحميل حقل النصوص. بعد كتلة التعليقات في الملف الرئيسي للإضافة، أضف الكود الخاص بتحميل ملفات الترجمة:
// 加载插件文本域
function mfp_load_textdomain() {
load_plugin_textdomain('my-first-plugin', false, dirname(plugin_basename(__FILE__)) . '/languages/');
}
add_action('plugins_loaded', 'mfp_load_textdomain'); إعداد حزمة ضغط للإضافات (plugins)
قبل نشر أو مشاركة الإضافة، يجب عليك إنشاء حزمة نشر نظيفة. تأكد من أن مجلد الإضافة الخاص بك يحتوي على جميع الملفات الضرورية، واستبعد أي ملفات غير ضرورية أو غير متعلقة بالإضافة. .git ملفات المجلدات، ملفات السجلات (اللوغات)، ملفات تكوين بيئة التطوير المتكاملة (IDE)، وأي محتويات أخرى غير ضرورية. عادةً، يجب أن يتضمن حزمة الإصدار الأصغر للإضافة (plugin) المحتويات التالية:
1. ملف PHP الرئيسي للإضافة.
2. خيار اختياري readme.txt الملف يتبع معايير تنسيق WordPress.org، ويُستخدم لعرضه في دليل الإضافات (plugins directory).
٣. ملف يحتوي على ملفات الترجمة. /languages المجلد (إن وجد).
٤. مجلدات موارد JavaScript وCSS والصور الأخرى الضرورية.
قم بضغط مجلد الإضافات بأكمله إلى ملف ZIP، ويمكن بعد ذلك تثبيت هذا الملف من خلال خاصية “تحميل الإضافات” في واجهة ووردبريس الخلفية، أو يمكنك أيضًا رفعه إلى مجلد الإضافات الرسمي لووردبريس.
الملخصات
من خلال هذا الدليل، قمنا بمراجعة العمليات الأساسية لتطوير إضافات ووردبريس: بدءًا من إعداد البيئة المناسبة، وإنشاء الملف الرئيسي للإضافة مع رأس الإضافة القياسي، مرورًا بإضافة الميزات باستخدام الأحداث (Events) ومخالب الفلاتر (Filters)، وصولًا إلى إنشاء صفحات الإعدادات القابلة للتكوين باستخدام واجهة برمجة التطبيقات (API)، وأخيرًا تعرفنا على أساسيات التدويل (Internationalization). كل هذا يوفر أساسًا متينًا لبناء إضافات أكثر تعقيدًا وفائدة. تذكر أن هيكل الكود الجيد، والالتزام بمعايير ترميز ووردبريس، بالإضافة إلى فهم عميق لنظام المخالب الخاص به، هي عوامل أساسية لتصبح مطور إضافات محترفًا.
الأسئلة الشائعة الأسئلة المتداولة
ما هي المعرفة البرمجية الأساسية المطلوبة لتطوير إضافات (plugins) لمنصة ووردبريس (WordPress) باستخدام الكود ###؟
يجب أن تمتلك معرفة أساسية بلغة البرمجة PHP، نظرًا لأن قلب نظام ووردبريس (WordPress) وإضافاته مكتوبة بشكل أساسي بلغة PHP. كما أن فهم أساسيات لغات HTML وCSS وJavaScript سيكون مفيدًا للغاية، خاصة عندما تحتاج إلى تخصيص واجهات الإدارة أو التفاعلات الأمامية للمستخدم. بالإضافة إلى ذلك، من الضروري أن تفهم المفاهيم الأساسية لنظام ووردبريس مثل المقالات (Articles)، الصفحات (Pages)، التصنيفات (Categories)، والأدوات المساعدة في التطوير (Plugins).
ما يجب أن يكون اسم الملف الرئيسي للإضافة (plugin)؟
لا يوجد أي متطلب إلزامي. يمكن أن يكون الملف الرئيسي أي اسم ملف PHP صالح، ولكن يُنصح عادةً باستخدام اسم يتوافق مع اسم دليل الإضافة (plugin directory). على سبيل المثال، إذا كان اسم الدليل هو… my-super-pluginإذا كان الأمر كذلك، فيمكن تسمية الملف الرئيسي… my-super-plugin.phpالمفتاح يكمن في تعليقات رأس الإضافة (plugin header) الموجودة في بداية الملف؛ حيث يقوم ووردبريس (WordPress) بالتعامل مع هذه التعليقات لتنفيذ الوظائف المرتبطة بالإضافة. Plugin Name: لتحديد المكونات الإضافية (البرامج الخارجية) المستخدمة في الموقع.
كيف يمكنني تصحيح أخطاء كود الإضافة (البرنامج الإضافي) الخاص بي؟
هناك العديد من الطرق التي يمكن من خلالها تصحيح أخطاء الإضافات (البرامج الإضافية). أولاً، تأكد من أنك قمت بتثبيت الإضافة بشكل صحيح على موقعك الإلكتروني. wp-config.php قم بتفعيل وضع التصحيح الخاص بووردبريس (WordPress Debug Mode) داخل الملف. WP_DEBUG تم تعيين الثابت على قيمة trueسيتم عرض أخطاء PHP وتحذيراتها وإشعاراتها على الصفحة. بالإضافة إلى ذلك، يمكن استخدام… error_log() تقوم الدالة بكتابة معلومات التصحيح إلى سجل الأخطاء على الخادم، أو تستخدم أدوات تصحيح أكثر تقدمًا مثل إضافة Query Monitor، والتي يمكن أن توفر معلومات مفصلة حول عمليات الاستعلام على قاعدة البيانات، والخطافات (hooks)، وأخطاء PHP، وغيرها.
كيف يمكنني نشر الإضافة (البرنامج الإضافي) التي طورتها في الدليل الرسمي لووردبريس (WordPress)?
لنشر الإضافة في الدليل الرسمي للإضافات على موقع WordPress.org، يجب عليك أولاً التسجيل بحساب على موقع WordPress.org، ثم تقديم إضافتك للمراجعة. يجب أن يتبع كود الإضافة رخصة GNU GPL، ويجب أن يحتوي على ملفات بتنسيق صحيح. readme.txt الملفات: سيقوم فريق المراجعة بفحص جودة الكود ومدى أمانه، بالإضافة إلى مطابقته لإرشادات المجلدات. بعد اجتياز عملية المراجعة، ستحصل على مستودع SVN لإدارة وتحديث إصدارات الإضافات الخاصة بك.
ما التالي، ما التالي؟
القراءة الموسعة والمعرفة العملية
فيما يلي بعض الموضوعات ذات الصلة بموضوع هذه المقالة وهي مناسبة لمزيد من القراءة المتعمقة. وغالباً ما يكون من الأفضل إعطاء الأولوية للبدء بالمقال الأقرب إلى مشكلتك الحالية ثم التوسع تدريجياً إلى المواضيع المحيطة.
- كيفية اختيار وتخصيص تصميم ووردبريس المثالي الذي يناسب احتياجاتك؟
- دليل تطوير إضافات ووردبريس: كيف تبني إضافتك المخصصة الأولى من الصفر
- كيف تصبح مطورًا لإضافات ووردبريس: دليل شامل من الصفر إلى النهاية
- من الصفر إلى الواحد: دليل شامل وخطوات عملية لبناء مواقع إلكترونية مهنية باستخدام WordPress
- دليل شامل لتطوير إضافات ووردبريس: من المبتدئين إلى الخبراء في إنشاء إضافات متخصصة