نقل موقع ووردبريس يكون مرهقاً بما فيه الكفاية عندما يكون كل شيء قياسياً وجاهزاً. أضف إليه بضع إضافات مبنية خصيصاً لك وقالباً مكتوباً يدوياً، وفجأة ستشعر أن كل دليل نقل تجده على الإنترنت ناقص. هذه الأدلة تغطي قاعدة البيانات ومجلد الملفات المرفوعة وربما ملف wp-config.php، لكنها نادراً ما تذكر ما سيحدث لتلك الإضافة المخصصة التي كتبها مطورك قبل ثلاث سنوات ولم يوثقها أحد بشكل كامل.
والخبر الجيد هو: الكود المخصص لا يجعل عملية النقل مستحيلة، بل يغير فقط النقاط التي تحتاج إلى الانتباه إليها.
ما الذي يبقى كما هو أثناء استخدام خدمة نقل ووردبريس
سواء كان موقعك يعمل بخمس إضافات مجانية من المستودع الرسمي أو عشر إضافات مبنية خصيصاً، فإن الآليات الأساسية لأي خدمة نقل ووردبريس لا تتغير. ستظل بحاجة إلى نقل ثلاثة أشياء:
- قاعدة البيانات (المقالات والصفحات والإعدادات وحسابات المستخدمين)
- مجلد wp-content (القوالب والإضافات والملفات المرفوعة)
- تفاصيل الإعدادات (wp-config.php، الروابط الدائمة، قواعد .htaccess)
عملية النقل الجيدة تأخذ نسخة احتياطية من هذه العناصر الثلاثة، وتنقلها إلى الخادم الجديد، وتحدّث روابط قاعدة البيانات، وتتأكد من أن كل شيء يعمل بشكل صحيح. لا شيء من هذا المنطق يتغير لمجرد أن إضافاتك مخصصة. الملف يبقى ملفاً، وجدول قاعدة البيانات يبقى جدولاً.
توافق بيئة الخادم يصبح أكثر أهمية
ما يتغير فعلياً هو مدى الحرص المطلوب في فحص توافق الخادم. الإضافات الجاهزة عادة ما تُبنى لتعمل على نطاق واسع من إصدارات PHP وإعدادات الخوادم المختلفة، لأن مطوريها يريدون أن تعمل لدى أكبر عدد ممكن من المستخدمين. أما الإضافات المخصصة فغالباً لم تُختبر بهذه الطريقة، فهي بُنيت لخادم واحد فقط، من قِبل مطور واحد كان لديه إعدادات PHP محددة في ذهنه.
قبل النقل، تحقق من:
- إصدار PHP - الكود المخصص المكتوب قبل خمس سنوات قد يستخدم دوال أصبحت قديمة في إصدارات PHP الأحدث
- إضافات PHP (extensions) - هل تحتاج إضافتك إلى GD أو ImageMagick أو cURL، أو شيء أقل شيوعاً مثل إضافات Redis أو memcached؟
- حدود الذاكرة - الوظائف المخصصة الثقيلة أحياناً تحتاج إلى memory_limit أعلى مما يوفره التثبيت الافتراضي
- اعتماديات Composer - إذا كانت إضافتك مبنية باستخدام حزم Composer، فيجب نقل تلك الحزم أيضاً، وليس فقط مجلد الإضافة نفسه
هذه هي الخطوة التي تتجاهلها معظم قوائم فحص النقل، وهي بالضبط النقطة التي تتعطل عندها المواقع ذات الكود المخصص. لقد تناولنا النسخة الأعم من هذه العملية في قائمة الفحص قبل النقل التي يجب على كل صاحب موقع ووردبريس إكمالها قبل تغيير الاستضافة، لكن مع الكود المخصص، عامل كل بند في تلك القائمة على أنه إلزامي وليس اختيارياً.
القوالب المخصصة تحمل تعقيداتها الخاصة
القالب المخصص عادة ما يعني مسارات ملفات مكتوبة بشكل ثابت، وأنواع مقالات مخصصة مسجلة في ملف functions.php، وربما بعض مراجع الأصول التي تفترض بنية مجلدات معينة. إليك ما يجب الانتباه إليه:
الروابط والمسارات المكتوبة بشكل ثابت
أحياناً يكتب المطورون نطاق الموقع أو المسارات المطلقة للخادم مباشرة داخل ملفات القالب، بدلاً من استخدام دوال ووردبريس مثل get_template_directory_uri(). إذا كان قالبك يفعل ذلك، فإن عملية البحث والاستبدال البسيطة في قاعدة البيانات لاسم النطاق لن تكتشف كل شيء. ستحتاج أيضاً إلى فحص ملفات القالب نفسها بحثاً عن أي إشارات للنطاق القديم أو مسار الخادم القديم.
أداة بحث واستبدال تعمل عبر الملفات وقاعدة البيانات معاً توفر عليك الكثير من البحث اليدوي هنا، لأنها تتيح لك اكتشاف المراجع في ملفات PHP، وليس فقط في صفوف قاعدة البيانات.
أنواع المقالات والتصنيفات المخصصة
إذا كان قالبك أو إحدى الإضافات المخصصة تسجل أنواع مقالات خاصة بها (مثل "معرض الأعمال" أو "آراء العملاء")، فهذه البيانات تعيش في قاعدة البيانات تماماً مثل المقالات العادية، وتُنقل بشكل سليم كجزء من تصدير قاعدة البيانات القياسي. المخاطرة تكمن في أنه إذا لم يُنقل الكود الذي يسجل أنواع المقالات هذه بشكل صحيح، أو تم تفعيله بترتيب خاطئ، فقد لا يتعرف ووردبريس على نوع المحتوى في الموقع الجديد إلى أن تُحمّل الإضافة أو القالب بشكل صحيح.
اختبار الوظائف المخصصة قبل الإطلاق الفعلي
مع الإضافات الجاهزة، عادة ما تكفي فحصة بصرية سريعة بعد النقل لاكتشاف المشاكل. أما مع الوظائف المخصصة، فيجب عليك فعلياً اختبار الميزات التي يشغّلها الكود المخصص: نموذج تواصل بمنطق تحقق مخصص، بوابة عضوية، أو تكامل API يسحب بيانات من خدمة خارجية. التشابه البصري لا يعني التشابه الوظيفي.
هنا تظهر فائدة بيئة الاختبار المؤقتة (staging). بدلاً من اختبار سلوك الإضافات المخصصة على نطاقك الفعلي والأمل بأن يسير كل شيء على ما يرام، يمكنك تشغيل الموقع المنقول في نسخة تجريبية أولاً، والنقر على كل ميزة مخصصة، والتأكد من أن اتصالات قاعدة البيانات ومفاتيح API تشير إلى الأماكن الصحيحة قبل أن يراها أي شخص آخر. بيئات الاختبار المؤقتة موجودة خصيصاً لهذا النوع من التجارب.
قائمة اختبار عملية
- سجّل الدخول واختبر أي صفحات إدارة أو شاشات إعدادات مخصصة
- أرسل أي نماذج مخصصة وتأكد من حفظ أو إرسال البيانات بشكل صحيح
- تحقق من تكاملات API الخارجية (بوابات الدفع، أنظمة CRM، حاسبات الشحن)
- اختبر أدوار وصلاحيات المستخدمين المخصصة إن وُجدت
- تحقق من أن المهام المجدولة (cron jobs) التي تعتمد عليها إضافتك لا تزال تعمل
النسخ الاحتياطية شبكة أمانك، وليست فكرة لاحقة
قبل أن تلمس أي شيء، خذ نسخة احتياطية كاملة من الملفات وقاعدة البيانات من الموقع الأصلي. إذا تصرفت إحدى الإضافات المخصصة بشكل غير متوقع على الخادم الجديد، ولم توثّق بالضبط كيف كانت معدّة من قبل، فإن النسخة الاحتياطية هي أسرع طريقة للعودة إلى حالة مستقرة معروفة. وجود نظام نسخ احتياطي قوي يتيح لك استعادة ملفات معينة أو جداول محددة من قاعدة البيانات، بدلاً من استعادة كل شيء أو لا شيء، مفيد بشكل خاص هنا. إذا تضررت فقط جداول قاعدة البيانات الخاصة بإضافتك المخصصة أثناء النقل، فأنت تريد استعادة تلك الجداول فقط، وليس التراجع عن الموقع بالكامل وفقدان تغييرات المحتوى التي تمت منذ ذلك الحين.
التحكم في الإصدارات يساعد أكثر مما تتوقع
إذا كانت إضافاتك المخصصة وملفات القالب موجودة في مستودع Git، فإن عملية النقل تصبح أقل خطورة بكثير. يمكنك سحب نفس الكود بالضبط إلى الخادم الجديد بدلاً من نسخ الملفات والأمل بألا يُفقد أو يتلف شيء أثناء النقل. كما يمنحك هذا نقطة تراجع نظيفة إذا تسببت البيئة الجديدة في سلوك غير متوقع، لأنه يمكنك مقارنة حالة الملفات قبل وبعد النقل.
إذا لم تكن تستخدم نظام التحكم بالإصدارات لكودك المخصص، فإن عملية النقل فرصة جيدة للبدء بذلك. للاطلاع على تفاصيل نقل موقع كبير أو معقد تحديداً، راجع كيفية نقل موقع ووردبريس كبير دون فقدان مقالة واحدة.
الخلاصة
الإضافات والقوالب المخصصة لا تغيّر بشكل جوهري طريقة عمل خدمة نقل ووردبريس. الملفات وقاعدة البيانات لا تزال بحاجة إلى النقل بنفس الطريقة المعتادة. ما يتغير هو مستوى الدقة المطلوب: فحص توافق الخادم مع كود كُتب لبيئة محددة، والبحث عن المسارات الثابتة التي قد تفوتها عملية البحث والاستبدال في قاعدة البيانات، والاختبار الفعلي للوظائف المخصصة بدلاً من مجرد إلقاء نظرة على الصفحة الرئيسية. خصص وقتاً إضافياً لهذا، ووثّق كيفية إعداد كودك المخصص قبل البدء، واعتمد على بيئات الاختبار المؤقتة والنسخ الاحتياطية الدقيقة لاكتشاف المشاكل قبل أن تصل إلى زوار موقعك.