قلة من الأشياء تعرقل يوماً مثمراً أسرع من اكتشاف أن إضافة ووردبريس قد توقفت عن العمل. ربما لم يعد نموذج الاتصال الخاص بك يرسل رسائل بريد إلكتروني. ربما اختفت إضافة تحسين محركات البحث (SEO) من قائمة المسؤول. أو الأسوأ من ذلك، تم استبدال موقعك بالكامل بشاشة بيضاء فارغة. مهما كانت الأعراض، يمكن أن يؤدي الخلل في الإضافة إلى شل موقعك، ويزداد الإحباط بسبب حقيقة أنك غالبًا لا تعرف ما الذي تغير.
يعمل ووردبريس على تشغيل أكثر من 40% من جميع مواقع الويب على الإنترنت، ويأتي الكثير من هذا التفوق من نظام الإضافات الخاص به. هناك أكثر من 60,000 إضافة مجانية في الدليل الرسمي وحده، مع آلاف أخرى تُباع عبر أسواق الطرف الثالث. هذا النظام البيئي الواسع هو أعظم قوة لووردبريس وأكثر مصادر صداعه استمرارًا. كل إضافة مكتوبة بواسطة مطور مختلف، بمعايير ترميز مختلفة، ودورات تحديث مختلفة، وافتراضات مختلفة حول البيئة التي ستعمل فيها. عندما تتصادم افتراضان أو أكثر من هذه الافتراضات، تحدث الأعطال.
هذا الدليل مصمم ليكون مرجعك لاستكشاف الأخطاء وإصلاحها الذي تعود إليه في كل مرة تسوء فيها أحوال الإضافة. سنرشدك عبر كل فئة رئيسية من فشل الإضافات، ونشرح ما يسببه على المستوى التقني، ونقدم لك تعليمات دقيقة خطوة بخطوة لتشخيص المشكلة وحلها. سواء كنت مالك موقع بخبرة تقنية محدودة أو مطورًا يقوم بتصحيح أخطاء تثبيت أحد العملاء، ستجد حلولًا قابلة للتنفيذ هنا.
قبل أن تبدأ في استكشاف الأخطاء وإصلاحها، قم دائمًا بإنشاء نسخة احتياطية كاملة لموقعك. إذا لم يكن لديك إضافة نسخ احتياطي أو لقطة استضافة متاحة، فقم يدويًا بتنزيل ملفاتك عبر FTP وتصدير قاعدة البيانات الخاصة بك عبر phpMyAdmin. كل إصلاح في هذا الدليل قابل للعكس، ولكن فقط إذا كان لديك نسخة احتياطية للرجوع إليها.
شاشة الموت البيضاء (WSOD)
شاشة الموت البيضاء هي فشل الإضافة الأكثر إثارة للقلق لأنها لا تمنحك شيئًا تقريبًا للعمل به. يتم تحميل موقعك كصفحة فارغة تمامًا، وأحيانًا بدون أي رسالة خطأ على الإطلاق. خلف الكواليس، حدث خطأ PHP فادح، لكن معالجة الأخطاء الافتراضية في ووردبريس تكتم المخرجات لمنع كشف معلومات حساسة للزوار.
ما الذي يسبب شاشة الموت البيضاء
يحدث هذا الخطأ دائمًا بسبب خطأ PHP فادح. تشمل المشغلات الشائعة تحديث إضافة يقدم رمزًا غير متوافق مع إصدار PHP الخاص بك، أو إضافة تستنفد الذاكرة المتاحة، أو تعارض بين إضافتين تحاولان تعديل نفس خطاف (Hook) ووردبريس. عندما يواجه PHP خطأ فادحًا، فإنه يوقف التنفيذ تمامًا، وبما أن ووردبريس لم يقم بعد بعرض أي HTML، يتلقى المتصفح استجابة فارغة.
الاستعادة خطوة بخطوة
الخطوة 1: تمكين وضع تصحيح أخطاء ووردبريس. اتصل بموقعك عبر FTP أو مدير ملفات الاستضافة الخاص بك. افتح ملف wp-config.php في دليل جذر ووردبريس الخاص بك. ابحث عن السطر الذي يقرأ define('WP_DEBUG', false); وقم بتغييره إلى:
define('WP_DEBUG', true);
define('WP_DEBUG_LOG', true);
define('WP_DEBUG_DISPLAY', false);
يقوم هذا التكوين بكتابة جميع الأخطاء في ملف في wp-content/debug.log دون عرضها للزوار. أعد تحميل موقعك، ثم تحقق من ملف سجل التصحيح. ستشير آخر الإدخالات عادةً إلى الملف الدقيق ورقم السطر الذي حدث فيه الخطأ الفادح، مما يخبرك على الفور بالإضافة المسؤولة.
الخطوة 2: تعطيل الإضافة المسببة للمشكلة عبر FTP. إذا لم تتمكن من الوصول إلى لوحة تحكم مسؤول ووردبريس، فانتقل إلى الدليل wp-content/plugins/ عبر FTP. أعد تسمية مجلد الإضافة المحدد في سجل التصحيح. على سبيل المثال، أعد تسمية contact-form-7 إلى contact-form-7-disabled. سيقوم ووردبريس تلقائيًا بإلغاء تنشيط أي إضافة لم يعد اسم مجلدها مطابقًا. أعد تحميل موقعك للتأكد من استعادته.
الخطوة 3: إذا لم تتمكن من تحديد الإضافة المحددة، أعد تسمية المجلد plugins بالكامل إلى plugins-disabled. هذا يعطل كل الإضافات دفعة واحدة. إذا تم تحميل موقعك، فأنشئ مجلدًا جديدًا فارغًا يسمى plugins، ثم انقل مجلدات الإضافات واحدًا تلو الآخر من plugins-disabled، مع إعادة تحميل موقعك بعد كل نقل. الإضافة التي تسبب الشاشة البيضاء عند نقلها مرة أخرى هي المشكلة.
يتضمن ووردبريس 5.2 والإصدارات الأحدث وضع استرداد مدمج. عند اكتشاف خطأ فادح، يرسل ووردبريس بريدًا إلكترونيًا إلى بريد المسؤول الإلكتروني يحتوي على رابط استرداد خاص. يتيح لك النقر على هذا الرابط تسجيل الدخول إلى لوحة التحكم مع إيقاف الإضافة المسببة للمشكلة مؤقتًا.
تعارض الإضافات: تحديد الجاني
تعد تعارضات الإضافات السبب الأكثر شيوعًا لتوقف إضافة ووردبريس عن العمل. على عكس شاشة الموت البيضاء، غالبًا ما تكون الأعطال المتعلقة بالتعارضات دقيقة. قد تعمل ميزة ما جزئيًا، أو قد يتم تحميل صفحة ببطء، أو قد تفشل الإعدادات في الحفظ. السبب الجذري هو دائمًا محاولة إضافتين القيام بنفس الشيء، أو تحميل إضافتين لملفات JavaScript أو CSS تتداخل مع بعضها البعض.
طريقة التعطيل المنهجي
الطريقة الأكثر موثوقية لتحديد تعارض الإضافات هي تعطيل جميع الإضافات وإعادة تنشيطها واحدة تلو الأخرى. انتقل إلى الإضافات > الإضافات المثبتة في لوحة تحكم ووردبريس. حدد جميع الإضافات باستخدام مربع الاختيار في الأعلى، واختر "تعطيل" من قائمة الإجراءات المجمعة، وانقر فوق تطبيق. ثم أعد تنشيط الإضافة التي تواجه المشكلة أولاً، وتأكد من أنها تعمل بشكل صحيح بمفردها. بعد ذلك، أعد تنشيط كل إضافة متبقية واحدة تلو الأخرى، مع الاختبار بعد كل تنشيط. عندما تعود المشكلة للظهور، فإن آخر إضافة قمت بتنشيطها هي التي تتعارض.
استخدام إضافة فحص الصحة واستكشاف الأخطاء وإصلاحها
إذا لم تتمكن من تحمل تعطيل جميع الإضافات على موقع مباشر، فقم بتثبيت إضافة Health Check and Troubleshooting (التي أنشأها فريق ووردبريس.أورج). تنشئ هذه الإضافة جلسة استكشاف أخطاء خاصة لا يراها سواك، باستخدام سمة افتراضية مع تعطيل جميع الإضافات الأخرى، بينما يستمر زوارك في رؤية الموقع العادي. يمكنك بعد ذلك تمكين الإضافات واحدة تلو الأخرى داخل جلسة استكشاف الأخطاء وإصلاحها لتحديد التعارض دون أي انقطاع لزوارك المباشرين.
أنماط التعارض الشائعة
إضافات التخزين المؤقت مقابل إضافات النماذج
إضافات تحسين محركات البحث المتعددة
إضافات التحسين مقابل الإضافات كثيفة JavaScript
إضافات الأمان مقابل إضافات REST API
مشاكل توافق إصدار PHP
يتطلب ووردبريس نفسه PHP 7.4 أو أعلى، ولكن العديد من الإضافات الحديثة تتطلب PHP 8.0 أو أعلى. إذا كانت بيئة الاستضافة الخاصة بك تعمل بإصدار PHP أقدم، فقد تفشل الإضافات المحدثة حديثًا بأخطاء بناء جملة أو تحذيرات إهمال تتصاعد إلى أخطاء فادحة. على العكس من ذلك، قد تتعطل بعض الإضافات القديمة التي كُتبت لـ PHP 7.x عندما يقوم المضيف الخاص بك بالترقية إلى PHP 8.x بسبب معالجة أنواع أكثر صرامة ووظائف تمت إزالتها.
كيفية التحقق من إصدار PHP الخاص بك
في لوحة تحكم ووردبريس، انتقل إلى الأدوات > صحة الموقع > معلومات وقم بتوسيع قسم "الخادم". يتم سرد إصدار PHP الخاص بك هناك. بدلاً من ذلك، يمكنك إنشاء ملف يسمى phpinfo.php في دليل جذر ووردبريس الخاص بك بالمحتوى التالي:
<?php phpinfo(); ?>
قم بزيارة هذا الملف في متصفحك للاطلاع على تكوين PHP التفصيلي. احذف هذا الملف فور الانتهاء من التحقق، لأنه يكشف معلومات حساسة عن الخادم.
أخطاء PHP الشائعة وما تعنيه
- "خطأ تحليل (Parse error): خطأ بناء جملة، رمز غير متوقع '...'" -- تستخدم الإضافة بناء جملة PHP غير مدعوم من قبل إصدارك. هذا يعني عادةً أنك بحاجة إلى إصدار PHP أحدث.
- "خطأ فادح: استثناء TypeError غير مُلتقط" -- قدم PHP 8.0 تدقيقًا أكثر صرامة للأنواع. ستؤدي الإضافة التي تمرر قيمة فارغة (null) حيث يُتوقع سلسلة نصية إلى إطلاق هذا الخطأ في PHP 8.x ولكنه كان سيعمل بصمت في PHP 7.x.
- "Deprecated: الوظيفة ... مهملة" -- تستخدم الإضافة وظيفة PHP تم وضع علامة عليها للإزالة. هذا تحذير، وليس خطأ فادحًا، ولكنه يشير إلى أن الإضافة بحاجة إلى تحديث.
- "خطأ فادح: استدعاء لوظيفة غير مُعرفة" -- تستدعي الإضافة وظيفة PHP غير موجودة في إصدار PHP الخاص بك. يمكن أن يحدث هذا مع الوظائف التي تمت إزالتها في PHP 8.0، مثل
create_function()أوeach().
ترقية PHP بأمان
يعرض معظم مزودي الاستضافة محدد إصدار PHP في لوحة التحكم (cPanel، Plesk، أو لوحة تحكم مخصصة). قبل تغيير الإصدار، قم بتشغيل إضافة PHP Compatibility Checker، التي تفحص جميع الإضافات والسمات الخاصة بك بحثًا عن التعليمات البرمجية التي قد لا تعمل تحت إصدار PHP الجديد. قم بتغيير الإصدار فقط بعد تأكيد التوافق، واحتفظ دائمًا بنسخة احتياطية جاهزة للتراجع إذا حدث أي عطل.
إذا كان المضيف الخاص بك لا يزال يعمل على PHP 7.4، ففكر بقوة في الترقية إلى PHP 8.1 أو 8.2. بالإضافة إلى توافق الإضافات، فإن إصدارات PHP الأحدث أسرع بكثير، مما يترجم مباشرة إلى أوقات تحميل صفحات أقصر وتحسينات في درجات Core Web Vitals.
استنفاد حدود الذاكرة
يقوم كل تحميل صفحة ووردبريس بتنفيذ كود PHP يستهلك ذاكرة الخادم. عندما تحاول إضافة معالجة مجموعة بيانات كبيرة، أو إنشاء تقرير معقد، أو التعامل مع تحميل ملف، فقد تتجاوز الذاكرة المخصصة لـ PHP. والنتيجة هي خطأ فادح يقرأ: Fatal error: Allowed memory size of X bytes exhausted.
الأعراض والتشخيص
غالبًا ما يظهر استنفاد الذاكرة بشكل غير متسق. قد يعمل موقعك بشكل جيد في معظم الأوقات ولكنه يتعطل عند تحميل صفحة معينة، أو عند تشغيل مهمة إدارية محددة، أو عند زيادة حركة المرور. ستتضمن رسالة الخطأ في سجل التصحيح حد الذاكرة الدقيق والملف الذي تجاوز هذا الحد. المتهمون الشائعون هم إضافات منشئ الصفحات التي تعرض تخطيطات معقدة، وإضافات تحسين الصور التي تعالج دفعات كبيرة، وإضافات النسخ الاحتياطي التي تحاول ضغط موقعك بالكامل في الذاكرة.
كيفية زيادة حد ذاكرة ووردبريس
هناك ثلاث طرق، ويجب أن تجربها بهذا الترتيب:
الطريقة 1: wp-config.php -- أضف هذا السطر إلى ملف wp-config.php الخاص بك، قبل السطر الذي يقول "That's all, stop editing!":
define('WP_MEMORY_LIMIT', '256M');
define('WP_MAX_MEMORY_LIMIT', '512M');
تتحكم القيمة الأولى في الذاكرة المتاحة للواجهة الأمامية، وتتحكم القيمة الثانية في لوحة تحكم المسؤول. بالنسبة لمعظم المواقع، 256M كافية.
الطريقة 2: .htaccess -- إذا كان الخادم الخاص بك يستخدم Apache، أضف هذا السطر إلى ملف .htaccess في جذر ووردبريس الخاص بك:
php_value memory_limit 256M
الطريقة 3: php.ini أو .user.ini -- أنشئ أو حرر ملف php.ini (أو .user.ini) في دليل جذر ووردبريس الخاص بك وأضف:
memory_limit = 256M
إذا لم تنجح أي من هذه الطرق، فقد يفرض مزود الاستضافة الخاص بك حدًا صارمًا للذاكرة على مستوى الخادم. اتصل بدعمهم لطلب زيادة، أو فكر في ترقية خطة الاستضافة الخاصة بك.
مشاكل أذونات الملفات
يحتاج ووردبريس إلى أذونات ملفات ومجلدات محددة ليعمل بشكل صحيح. إذا كانت الأذونات مقيدة للغاية، فلا يمكن للإضافات الكتابة في ملفات التكوين الخاصة بها، أو إنشاء أدلة التخزين المؤقت، أو حفظ الوسائط المحملة. إذا كانت الأذونات متساهلة للغاية، فقد يقوم ماسح الأمان الخاص بمزود الاستضافة الخاص بك بتعطيل الملفات، وستعرض موقعك لخطر محتمل.
إعدادات الأذونات الصحيحة
الأذونات القياسية الموصى بها لووردبريس هي:
- المجلدات: 755 (يمكن للمالك القراءة/الكتابة/التنفيذ، ويمكن للمجموعة والآخرين القراءة/التنفيذ)
- الملفات: 644 (يمكن للمالك القراءة/الكتابة، ويمكن للمجموعة والآخرين القراءة فقط)
- wp-config.php: 440 أو 400 (يمكن للمالك القراءة، ولا يمكن للآخرين القراءة أو الكتابة)
كيفية إصلاح الأذونات عبر FTP أو SSH
إذا كان لديك وصول SSH، يمكنك إعادة تعيين جميع الأذونات مرة واحدة باستخدام أمرين يتم تشغيلهما من دليل جذر ووردبريس الخاص بك:
find . -type d -exec chmod 755 {} \;
find . -type f -exec chmod 644 {} \;
إذا كان لديك وصول FTP فقط، فإن معظم عملاء FTP (FileZilla، Cyberduck، WinSCP) يسمحون لك بالنقر بزر الماوس الأيمن على مجلد أو ملف وتعيين الأذونات. بالنسبة للمواقع الكبيرة، يمكن أن يكون تطبيق الأذونات بشكل متكرر عبر FTP بطيئًا، لذا يفضل SSH بشدة. يقدم بعض مزودي الاستضافة أيضًا أداة إصلاح أذونات الملفات في لوحة التحكم الخاصة بهم.
تكون الإضافات التي تنشئ ملفات (إضافات التخزين المؤقت، إضافات التصغير، إضافات النسخ الاحتياطي) حساسة بشكل خاص لأذونات الملفات. إذا لم تتمكن إضافة التخزين المؤقت من الكتابة في wp-content/cache/، فستفشل بصمت أو تطرح تحذيرات متكررة. إذا لم تتمكن إضافة النسخ الاحتياطي من إنشاء ملفات في wp-content/uploads/، فستفشل النسخ الاحتياطية دون رسالة خطأ واضحة. تحقق دائمًا من الأذونات على هذه الأدلة المحددة عند استكشاف أخطاء الكتابة وإصلاحها.
مشاكل الاتصال بقاعدة البيانات والتلف
يقوم ووردبريس بتخزين جميع إعدادات الإضافات، ومحتوى المنشورات، وبيانات المستخدم، وخيارات الموقع في قاعدة بيانات MySQL (أو MariaDB). عندما تصبح قاعدة البيانات غير قابلة للوصول أو تتلف جداولها، تفشل الإضافات التي تقرأ أو تكتب في قاعدة البيانات. العرض الأكثر وضوحًا هو الرسالة "Error establishing a database connection" (خطأ في إنشاء اتصال بقاعدة البيانات)، ولكن الأعراض الأكثر دقة تشمل إعدادات الإضافة التي تعود إلى الإعدادات الافتراضية، أو اختفاء المحتوى، أو تحميل صفحات المسؤول جزئيًا.
التحقق من إعدادات wp-config.php
افتح ملف wp-config.php الخاص بك وتحقق من ثوابت اتصال قاعدة البيانات الأربعة:
define('DB_NAME', 'your_database_name');
define('DB_USER', 'your_database_username');
define('DB_PASSWORD', 'your_database_password');
define('DB_HOST', 'localhost');
تختلف قيمة DB_HOST حسب مزود الاستضافة. يستخدم البعض localhost، ويستخدم البعض الآخر عنوان IP أو اسم مضيف مثل mysql.yourdomain.com. تحقق من وثائق الاستضافة أو لوحة التحكم الخاصة بك إذا لم تكن متأكدًا. أحد الأسباب الشائعة لفشل اتصال قاعدة البيانات هو تغيير كلمة المرور مؤخرًا لم ينعكس في wp-config.php.
إصلاح قاعدة بيانات ووردبريس
يتضمن ووردبريس أداة إصلاح قاعدة بيانات مدمجة. لتمكينها، أضف هذا السطر إلى ملف wp-config.php الخاص بك:
define('WP_ALLOW_REPAIR', true);
ثم قم بزيارة https://yoursite.com/wp-admin/maint/repair.php في متصفحك. سترى خيارات لإصلاح وتحسين جداول قاعدة البيانات الخاصة بك. انقر فوق "Repair and Optimize Database" لإصلاح فهارس الجداول التالفة واستعادة المساحة المهدرة. قم بإزالة السطر WP_ALLOW_REPAIR من ملف التكوين الخاص بك بعد الانتهاء، لأن هذه الصفحة يمكن الوصول إليها دون مصادقة.
للتلف الأكثر خطورة، قد تحتاج إلى تسجيل الدخول إلى phpMyAdmin (المتاح عبر معظم لوحات التحكم في الاستضافة)، وتحديد قاعدة البيانات المتأثرة، وتحديد جميع الجداول، واستخدام خيار "Repair table" من القائمة المنسدلة.
مشاكل التخزين المؤقت بعد تحديثات الإضافات
يعد التخزين المؤقت أحد الأسباب الأكثر شيوعًا لعدم عمل الإضافة بعد التحديث. لقد تغير كود الإضافة، ولكن الخادم الخاص بك، أو إضافة التخزين المؤقت، أو شبكة توصيل المحتوى (CDN) الخاصة بك لا تزال تقدم الإصدار القديم من الصفحة. والنتيجة هي أن التحديث يبدو أنه لم يكن له أي تأثير، أو الأسوأ من ذلك، يسبب عيوبًا بصرية لأن ملفات CSS و JavaScript المخزنة مؤقتًا القديمة يتم تحميلها جنبًا إلى جنب مع ترميز HTML الجديد.
الطبقات الثلاث للتخزين المؤقت
التخزين المؤقت على مستوى الخادم
تخزين الإضافات المؤقت لووردبريس
تخزين CDN المؤقت
عند استكشاف أخطاء إضافة "لا تعمل" بعد التحديث، قم دائمًا بمسح جميع طبقات التخزين المؤقت الثلاث بالترتيب: ذاكرة التخزين المؤقت للخادم أولاً، ثم ذاكرة التخزين المؤقت للإضافة، ثم ذاكرة التخزين المؤقت لشبكة CDN. قم أيضًا بمسح ذاكرة التخزين المؤقت للمتصفح الخاص بك أو اختبر في نافذة خاصة/متخفية لاستبعاد التخزين المؤقت المحلي. لقد ضاعت ساعات عديدة في تصحيح خطأ كان مجرد ذاكرة تخزين مؤقت قديمة.
فشل تحديث الإضافات
يقوم ووردبريس بتحديث الإضافات تلقائيًا عن طريق تنزيل الإصدار الجديد، واستخراجه، واستبدال مجلد الإضافة القديم. إذا تمت مقاطعة أي خطوة في هذه العملية - بسبب مهلة الخادم، أو مشكلة في الأذونات، أو حد الموارد الذي يفرضه مزود الاستضافة - فقد ينتهي الأمر بالإضافة في حالة معطلة حيث يتم استبدال الملفات القديمة جزئيًا بملفات جديدة.
أعراض فشل التحديث
- تظهر الإضافة على أنها "نشطة" ولكن رقم إصدارها لم يتغير
- يظهر إشعار "وضع الصيانة" ولا يختفي (ينشئ ووردبريس ملف
.maintenanceأثناء التحديثات) - تعرض صفحة مسؤول الإضافة شاشة فارغة أو خطأ PHP بخصوص ملف مفقود
- يعرض ووردبريس "فشل تحديث ووردبريس تلقائي في الاكتمال"
التحديث اليدوي عبر FTP
إذا ترك التحديث التلقائي الإضافة في حالة معطلة، فإن الحل الأنظف هو التحديث اليدوي:
- قم بتنزيل أحدث إصدار من الإضافة من مصدرها الرسمي (صفحة الإضافة على WordPress.org أو موقع البائع)
- اتصل بموقعك عبر FTP وانتقل إلى
wp-content/plugins/ - أعد تسمية مجلد الإضافة الحالي (على سبيل المثال،
plugin-nameإلىplugin-name-old) - قم بتحميل المجلد الجديد المستخرج إلى
wp-content/plugins/ - سجل الدخول إلى لوحة تحكم ووردبريس الخاصة بك وتأكد من أن الإضافة نشطة بالإصدار الصحيح
- احذف المجلد القديم المعاد تسميته بمجرد التأكد من عمل كل شيء
استراتيجيات التراجع
إذا قدم إصدار إضافة جديد خطأً، فقد تحتاج إلى التراجع إلى الإصدار السابق. تتيح لك إضافة WP Rollback تحديد أي إصدار سابق من إضافة من مستودع WordPress.org وتثبيته بنقرة واحدة. بالنسبة للإضافات المتميزة غير المستضافة على WordPress.org، تحقق مما إذا كان البائع يوفر الوصول إلى الإصدارات السابقة في منطقة حسابك. كملاذ أخير، يمكنك غالبًا العثور على الإصدار السابق في ملفات النسخ الاحتياطي الخاصة بك.
إذا رأيت رسالة "غير متاح مؤقتًا للصيانة المجدولة" بشكل مستمر، فاحذف الملف .maintenance في دليل جذر ووردبريس الخاص بك عبر FTP. ينشئ ووردبريس هذا الملف أثناء التحديثات ويحذفه عند اكتمال التحديث. يترك الفشل في التحديث هذا الملف في مكانه، مما يحبس موقعك في وضع الصيانة إلى أجل غير مسمى.
هل سئمت من استكشاف تعارضات الإضافات؟
تضيف Asyntai دردشة مدعومة بالذكاء الاصطناعي إلى موقعك بسطر واحد من التعليمات البرمجية. لا تعارضات PHP، لا تبعيات قاعدة بيانات، لا مشاكل توافق السمات.
شاهد كيف يعمل →تعارضات JavaScript و jQuery
يقوم ووردبريس بتجميع jQuery وتحميله افتراضيًا، ولكن العديد من الإضافات تتضمن إصداراتها الخاصة من jQuery أو مكتبات JavaScript أخرى. عندما يتم تحميل إصدارين مختلفين من نفس المكتبة على نفس الصفحة، سيقوم أحدهما بالكتابة فوق الآخر، مما يتسبب في فشل الوظائف التي تعتمد على الإصدار الذي تمت الكتابة فوقه. هذا هو أحد أكثر مشاكل الإضافات شيوعًا والأصعب في التشخيص.
تحديد أخطاء وحدة التحكم
افتح أدوات المطور في متصفحك (اضغط F12 أو انقر بزر الماوس الأيمن واختر "Inspect")، ثم انقر فوق علامة التبويب Console. أعد تحميل الصفحة وابحث عن رسائل الخطأ الحمراء. تشمل أخطاء JavaScript الشائعة الناتجة عن تعارضات الإضافات ما يلي:
- "is not a function$" -- إما أن jQuery لم يتم تحميله، أو تم تحميله بترتيب مختلف عن المتوقع، أو تمت الكتابة فوقه بواسطة مكتبة غير jQuery تستخدم الرمز
$ - "Cannot read properties of null" -- يحاول نص برمجي التلاعب بعنصر DOM لم يتم عرضه بعد، عادةً لأن النص البرمجي تم تحميله قبل العنصر الذي يعتمد عليه
- "Unexpected token" -- قامت إضافة تصغير بكسر بناء جملة JavaScript، غالبًا عن طريق دمج الملفات بشكل غير صحيح أو إزالة فواصل منقوطة ضرورية
- "X is not a constructor" -- تقوم إضافتان بتحميل إصدارات مختلفة من نفس المكتبة، والإصدار الأقدم لا يدعم بناء المنشئ الذي تتوقعه الإضافة الأحدث
أفضل ممارسات wp_enqueue_script
تقوم إضافات ووردبريس المكتوبة جيدًا بتحميل ملفات JavaScript الخاصة بها باستخدام الدالة wp_enqueue_script()، التي تخبر ووردبريس بتبعيات كل نص برمجي وتمنع التحميل المكرر. تنشأ المشاكل عندما تتجاوز الإضافات هذا النظام وتحقن النصوص البرمجية مباشرة في الصفحة باستخدام علامات <script> مُرمزة بشكل ثابت. إذا كنت مطورًا، فحدد دائمًا jQuery كأحد التبعيات عند إدراج النصوص البرمجية التي تستخدمه، واستخدم دائمًا اسم المتغير jQuery بدلاً من $ في سياق ووردبريس، أو قم بتغليف الكود الخاص بك في دالة مغلقة (closure):
(function($) {
// كود jQuery الخاص بك هنا باستخدام $ بأمان
$(document).ready(function() {
// تهيئة الإضافة
});
})(jQuery);
تحديد النصوص البرمجية المتعارضة
في أدوات المطور بالمتصفح، انتقل إلى علامة التبويب Network، وأعد تحميل الصفحة، وقم بالتصفية حسب "JS" لرؤية كل ملف JavaScript يتم تحميله. ابحث عن إصدارات متعددة من نفس المكتبة (قد ترى jquery.min.js محملة مرتين من مسارات مختلفة). تحقق أيضًا من النصوص البرمجية التي يتم تحميلها من قسم <head> بدون السمة defer أو async، لأن هذه تعيق عرض الصفحة ويمكن أن تسبب فشلًا يعتمد على التوقيت.
عدم توافق السمة (Theme Incompatibility)
تتحكم سمات ووردبريس في أكثر من مجرد المظهر المرئي لموقعك. إنها تحدد خطافات ووردبريس المتاحة، وكيفية هيكلة ترميز الصفحة، ومكتبات JavaScript التي يتم تحميلها، وأنماط CSS التي يتم تطبيقها عالميًا. قد تفشل الإضافة التي تعمل بشكل مثالي مع سمة معينة تمامًا مع سمة أخرى لأن بنية HTML المتوقعة مختلفة، أو خطاف مطلوب مفقود، أو تتجاوز ورقة أنماط السمة عناصر واجهة المستخدم الخاصة بالإضافة.
التبديل إلى سمة افتراضية للاختبار
أسرع طريقة لتحديد ما إذا كانت السمة تسبب مشكلة الإضافة الخاصة بك هي التبديل مؤقتًا إلى إحدى سمات ووردبريس الافتراضية (Twenty Twenty-Four، Twenty Twenty-Three، إلخ). انتقل إلى المظهر > السمات، وقم بتنشيط سمة افتراضية، واختبر الإضافة. إذا عملت الإضافة بشكل صحيح مع السمة الافتراضية، فإن المشكلة هي عدم توافق السمة. يمكنك بعد ذلك التحقيق فيما إذا كان التعارض في ملف functions.php الخاص بالسمة، أو ملفات القالب الخاصة بها، أو أنماط CSS الخاصة بها.
اعتبارات السمة الابن (Child Theme)
إذا كنت تستخدم سمة ابن، فاختبر مع السمة الأصلية وحدها وسمة الابن لعزل ما إذا كانت تخصيصاتك تسبب التعارض. تشمل مشاكل سمات الابن الشائعة تجاوز خطافات إجراءات ووردبريس التي تعتمد عليها الإضافات، وتحميل JavaScript مخصص يتعارض مع نصوص الإضافات البرمجية، وقواعد CSS ذات الأولوية العالية التي تخفي عناصر واجهة المستخدم الخاصة بالإضافة. تحقق من ملف functions.php الخاص بسمة الابن الخاص بك بحثًا عن أي استدعاءات remove_action() أو remove_filter() قد تزيل شيئًا تحتاجه الإضافة.
تنقسم حالات عدم توافق السمات إلى فئتين. تحدث التعارضات المرئية عندما تتجاوز أنماط السمة تصميم الإضافة، مما يتسبب في أن تكون الأزرار غير مرئية، أو ظهور النوافذ المنبثقة خلف محتوى آخر، أو تعطل تخطيطات النماذج. يمكن عادةً إصلاح هذه المشاكل باستخدام CSS مخصص. التعارضات الوظيفية أكثر خطورة: تزيل السمة خطاف ووردبريس الذي تعتمد عليه الإضافة، أو يتداخل JavaScript الخاص بالسمة مع معالجات الأحداث الخاصة بالإضافة. تتطلب هذه المشاكل تغييرات في كود السمة أو الاتصال بمطور السمة.
لماذا تتجنب بعض الإضافات هذه المشاكل تمامًا
بعد قراءة جميع المشاكل المذكورة أعلاه، يصبح النمط واضحًا. يعود الغالبية العظمى من فشل إضافات ووردبريس إلى عدد قليل من الحقائق المعمارية: تعارضات PHP، وتلف جداول قاعدة البيانات، وتبعيات خطافات السمة، وتصادم JavaScript مع نصوص برمجية أخرى، واستنفاد الذاكرة من المعالجة على جانب الخادم، وتداخل طبقات التخزين المؤقت. هذه ليست أخطاء في أي إضافة واحدة. إنها عواقب متأصلة في كيفية بناء إضافات ووردبريس التقليدية - ككود PHP يعمل داخل بيئة تنفيذ ووردبريس، ويشارك نفس مساحة الذاكرة، ونفس قاعدة البيانات، ونظام الخطافات نفسه، ونفس نطاق JavaScript مثل كل إضافة أخرى.
ولكن ليس كل أداة تتكامل مع ووردبريس تحتاج إلى اتباع هذه البنية. فئة متنامية من الخدمات تتبنى نهجًا مختلفًا جذريًا: بدلاً من تثبيت كود PHP يعمل على الخادم الخاص بك، فإنها توفر مقتطف JavaScript واحدًا يتم تحميله من شبكة توصيل محتوى (CDN) خارجية. يعمل النص البرمجي في متصفح الزائر، ومستقل تمامًا عن تثبيت ووردبريس الخاص بك. إنه لا يلمس بيئة PHP الخاصة بك، ولا يكتب في قاعدة البيانات الخاصة بك، ولا يعتمد على أي خطافات سمة، ولا يشارك نطاق JavaScript مع الإضافات الأخرى.
Asyntai: مثال على نهج علامة النص البرمجي (Script-Tag)
Asyntai هي أداة دردشة مدعومة بالذكاء الاصطناعي تتبع بالضبط هذا الهيكل. بدلاً من إضافة ووردبريس تقليدية تقوم بتثبيت ملفات PHP، وإنشاء جداول قاعدة بيانات، والربط بدورة تنفيذ ووردبريس، يعمل Asyntai عن طريق إضافة علامة <script> واحدة إلى موقعك. يتم تحميل أداة الدردشة بالذكاء الاصطناعي من شبكة CDN الخاصة بـ Asyntai، وتعمل في نطاقها المعزول في المتصفح، وتتواصل مباشرة مع خوادم Asyntai لمعالجة الذكاء الاصطناعي.
لا يوجد تعارضات PHP
لا توجد تبعيات لقاعدة البيانات
لا توجد تعارضات سمات
لا يوجد تصادم JavaScript
$ أو يعدل أي نماذج أولية عامة.يقوم Asyntai تلقائيًا بالزحف إلى ما يصل إلى 5000 صفحة من موقعك لفهم المحتوى الخاص بك، ثم يجيب على أسئلة الزوار باستخدام المحتوى الخاص بك، بـ 36 لغة مع الكشف التلقائي عن اللغة. تتم معالجة الذكاء الاصطناعي على خوادم Asyntai، وليس خادمك، لذلك لا يضيف أي حمل على استضافة ووردبريس الخاصة بك. هناك خطة مجانية تتضمن 100 رسالة شهريًا لموقع واحد، مما يسهل الاختبار دون التزام.
على الرغم من أن Asyntai يقدم أيضًا إضافة ووردبريس رسمية لسهولة التثبيت، إلا أن الإضافة نفسها خفيفة الوزن - فهي تقوم ببساطة بحقن نفس علامة النص البرمجي في صفحاتك. إنها لا تشغل منطق PHP معقدًا، ولا تنشئ جداول قاعدة بيانات، ولا تربط بنظام جدولة ووردبريس (cron). هذا يعني أن إصدار الإضافة يتجنب أيضًا الفئة بأكملها من المشاكل الموصوفة في هذا الدليل.
الخلاصة ليست أنه يجب استبدال جميع إضافات ووردبريس بعلامات نصوص برمجية. تحتاج العديد من الإضافات إلى تكامل عميق على جانب الخادم. ولكن بالنسبة للأدوات التي تضيف ميزة واجهة أمامية بشكل أساسي - أدوات الدردشة، والتحليلات، وشريط الإشعارات، ونماذج الملاحظات - فإن نهج علامة النص البرمجي يلغي فئة كاملة من المشاكل قبل أن تحدث.
متى يجب الاتصال بدعم الإضافة مقابل توظيف مطور
معرفة متى تطلب مساعدة خارجية يمكن أن توفر عليك ساعات من الإحباط. إليك إطار عمل عملي للقرار بين الاتصال بفريق دعم الإضافة أو توظيف مطور ووردبريس.
اتصل بدعم الإضافة عندما:
- بدأت المشكلة فورًا بعد تحديث الإضافة (من المحتمل أن يكون هذا خطأ يحتاج المطور إلى معرفته)
- تعمل الإضافة على تثبيت ووردبريس جديد ولكن ليس على تثبيتك (يساعد هذا فريق الدعم على فهم أنها مشكلة خاصة بالبيئة)
- لقد حددت تعارضًا محددًا مع إضافة أخرى مسماة (قد يكون لدى المطور بالفعل حل معروف أو حل بديل)
- تشير رسالة الخطأ إلى ملف محدد داخل دليل الإضافة الخاص بها
- أنت تستخدم الإصدار المجاني والميزة التي تحتاجها هي في الواقع ميزة متميزة فقط (يحدث هذا أكثر مما تتوقع)
وظف مطورًا عندما:
- يحتوي موقعك على مشاكل متعددة متفاعلة تتراكم مع بعضها البعض (مشاكل الأذونات بالإضافة إلى تلف قاعدة البيانات بالإضافة إلى PHP قديم)
- تحتاج إلى تكامل مخصص بين إضافتين لا تعملان معًا بشكل طبيعي
- توقف مطور الإضافة عن دعم المشروع وتحتاج إلى بديل أو نسخة مشتقة (fork)
- لدى بيئة الاستضافة الخاصة بك قيود غير عادية (استضافة مشتركة ذات حدود موارد منخفضة، قيود أمنية تحظر السلوك القياسي للإضافة)
- لقد قمت بتعديل ملفات ووردبريس الأساسية أو تستخدم إصدار ووردبريس قديمًا جدًا لا يمكن تحديثه
عند الاتصال بدعم الإضافة، قم دائمًا بتضمين إصدار ووردبريس الخاص بك، وإصدار PHP، وقائمة بجميع الإضافات النشطة وإصداراتها، ورسالة الخطأ الدقيقة (من سجل التصحيح، وليس إعادة صياغة)، والخطوات اللازمة لتكرار المشكلة. توفر هذه المعلومات جولات متعددة من المراسلات وتزيد بشكل كبير من فرصة الحل السريع.
الصيانة الوقائية: إيقاف المشاكل قبل أن تبدأ
أفضل طريقة للتعامل مع فشل الإضافات هي منع حدوثها. قدر قليل من الصيانة المنتظمة يلغي الغالبية العظمى من جلسات استكشاف الأخطاء وإصلاحها الطارئة.
استخدم بيئة التدريج (Staging Environment)
لا تقم أبدًا بتحديث الإضافات مباشرة على موقعك المباشر. يوفر معظم مزودي استضافة ووردبريس المُدارة بيئة تدريج بنقرة واحدة حيث يمكنك استنساخ موقعك، وتطبيق التحديثات، والاختبار الشامل، ثم دفع التغييرات إلى الإنتاج فقط بعد التأكد من عمل كل شيء. إذا لم يوفر المضيف الخاص بك بيئة تدريج، يمكنك إنشاء واحدة يدويًا باستخدام نطاق فرعي واستنساخ قاعدة بيانات، أو استخدام أداة تطوير محلية مثل LocalWP. يكتشف الاختبار في بيئة التدريج أولاً التعارضات قبل أن تؤثر على زوارك.
الحفاظ على جدول نسخ احتياطي منتظم
النسخ الاحتياطي اليومي المؤتمت غير قابل للتفاوض. استخدم نظام النسخ الاحتياطي الخاص بمزود الاستضافة أو إضافة نسخ احتياطي مخصصة لإنشاء لقطات يومية لكل من ملفاتك وقاعدة البيانات. قم بتخزين النسخ الاحتياطية في موقع منفصل عن حساب الاستضافة الخاص بك (خدمة تخزين سحابي، على سبيل المثال). اختبر النسخ الاحتياطية بشكل دوري عن طريق استعادة واحدة إلى موقع تدريج للتحقق من أنها تعمل بالفعل. النسخة الاحتياطية التي لم تختبرها هي نسخة احتياطية لا يمكنك الوثوق بها.
إنشاء جدول تحديث
بدلاً من تحديث الإضافات كلما طالبك ووردبريس بذلك، حدد يومًا معينًا كل أسبوع أو شهر لصيانة الإضافات. في ذلك اليوم، راجع التحديثات المتاحة، وتحقق من سجل التغييرات لكل إضافة بحثًا عن تغييرات كاسرة أو ملاحظات توافق، وقم بتطبيق التحديثات على موقع التدريج أولاً، واختبر، ثم ادفع إلى الإنتاج. هذا النهج المنضبط يمنع سيناريو "لقد قمت بتحديث 12 إضافة دفعة واحدة والآن هناك شيء معطل ولا أعرف أي تحديث تسبب في ذلك".
تدقيق الإضافات الأسبوعي
فحص الصحة الشهري
تقليل عدد الإضافات لديك
كل إضافة تضيفها تزيد من مساحة السطح للتعارضات المحتملة، والثغرات الأمنية، وتدهور الأداء. قبل تثبيت إضافة جديدة، اسأل عما إذا كانت وظيفة ووردبريس المضمنة أو مقتطف كود بسيط يمكنه تحقيق نفس الهدف. إذا كان لديك إضافتان تتداخلان في الميزات، ففكر في التوحيد إلى إضافة واحدة. كمبدأ عام، عدد أقل من الإضافات يعني مشاكل أقل. سيكون الموقع الذي تتم صيانته جيدًا بـ 15 إضافة مختارة بعناية أكثر موثوقية دائمًا من موقع به 40 إضافة تقوم بمهام متداخلة.
الخلاصة
تعد مشاكل إضافات ووردبريس حقيقة واقعة لأي شخص يدير موقع ووردبريس. إن انفتاح وتنوع نظام الإضافات هو ما يجعل ووردبريس قويًا جدًا، ولكنه يعني أيضًا أن التعارضات، والفجوات في التوافق، وأعطال التكوين أمر لا مفر منه.
الخبر السار هو أن كل فشل في الإضافة يقع تقريبًا ضمن إحدى الفئات التي تناولها هذا الدليل، ولكل منها تقريبًا حل منهجي. ابدأ بالأساسيات: قم بتمكين وضع التصحيح، وتحقق من سجل الأخطاء، وافصل المشكلة عن طريق تعطيل الإضافات واحدًا تلو الآخر. تحقق من إصدار PHP الخاص بك، وتحقق من حدود الذاكرة، وتأكد من أذونات الملفات. امسح كل طبقة من طبقات التخزين المؤقت. عند الشك، اختبر مقابل سمة افتراضية مع تعطيل جميع الإضافات الأخرى. ستظهر معظم المشاكل من خلال هذه العملية في غضون دقائق.
للحصول على الموثوقية المستمرة، استثمر في الوقاية. استخدم بيئة تدريج للتحديثات، وحافظ على نسخ احتياطية يومية، وقم بمراجعة قائمة الإضافات الخاصة بك بانتظام، وحافظ على تحديث إصدار PHP الخاص بك. فكر في بنية الأدوات التي تضيفها إلى موقعك - الأدوات التي تعمل كنصوص برمجية مستقلة في المتصفح، بدلاً من كونها كود PHP متكامل بعمق، ستكون دائمًا أكثر مرونة في مواجهة التعارضات ومشاكل التوافق التي تعاني منها إضافات ووردبريس التقليدية.
الوقت الذي تقضيه في فهم كيفية عمل إضافات ووردبريس - وكيف تفشل - يؤتي ثماره في كل مرة تتجنب فيها جلسة تصحيح أخطاء مذعورة في منتصف الليل. ضع إشارة مرجعية على هذا الدليل، وفي المرة القادمة التي تتعطل فيها إضافة، ستعرف بالضبط من أين تبدأ.