4 نصائح لإصلاح موقع WordPress

نشرت: 2020-09-03

قبل بضعة أيام اتصل بي أحد الأصدقاء وأخبرني أنه قد تم تكليفه بمهمة صيانة مشروع WordPress قديم. على ما يبدو ، لم يتم تحديث الموقع لأكثر من ثلاث سنوات وكانت هناك مشكلات في كل مكان. كان الرجل المسكين عالقًا تمامًا ، لأنه لم يتمكن من تحديث أي شيء هناك: المكونات الإضافية ، والموضوع ، والمحتوى ... لا شيء يعمل. أدت جميع الإجراءات (بخلاف تصفح الموقع نفسه) إلى تعطل WordPress وإرجاع خطأ.

عندما يكون لدينا WordPress غير قابل للاستخدام يولد أخطاء بشكل مستمر ولا يمكن تحديثه ، فإن أول شيء يجب علينا فعله هو تحديد سبب تصرفه بالطريقة التي يعمل بها. أي أننا بحاجة إلى إيجاد الجاني. عادةً ما تحدث أي مشكلات قد تواجهها على موقع WordPress بسبب المظهر الخاص بك أو واحد (أو أكثر) من المكونات الإضافية الخاصة بك.

بالنظر إلى ذلك ، فإن الإجراء المعتاد لإصلاح موقع WordPress هو تحديد المكون الإضافي المخالف ، وإزالته من المعادلة ، وتحديث كل شيء ، وأخيرًا ، معرفة ما إذا كان بإمكاننا إعادة تثبيت المكون الإضافي المخالف وتحديثه على موقعنا على الويب أم ينبغي علينا البحث عن إستبدال. سأخبركم اليوم بأربع حيل بسيطة لاكتشاف سبب فشل أحد مواقع الويب ، وبالتالي ، التمكن من إصلاحه.

استخدام سجل أخطاء الخادم الخاص بنا

بافتراض الفرضية القائلة بأنه مكون إضافي هو الشخص الذي يتسبب في الأخطاء التي نواجهها على موقعنا ، فإن أول شيء يتعين علينا القيام به هو التحقق من صحة الفرضية المذكورة. هناك صيغ مختلفة للقيام بذلك. أنا شخصياً أحب أن أبدأ بالاطلاع على سجل أخطاء الخادم الخاص بي ، والذي له خياره الخاص في cPanel:

خطأ في تسجيل الدخول cPanel
خطأ في تسجيل الدخول cPanel.

نأمل ألا يحتوي سجل الأخطاء فقط على أثر للأخطاء التي حدثت على موقعنا ، ولكن أيضًا معلومات حول "مكان" حدوثها ، وبالتالي ، من كان الجاني. على سبيل المثال ، واجهت الأسبوع الماضي المشكلة التالية في سجل الأخطاء لبيئة التطوير الخاصة بي:

 appserver_1 | [Mon Aug 24 09:18:20.977541 2020] [php7:notice] [pid 1107] [client 172.20.0.2:34396] PHP Notice: register_rest_route was called <strong>incorrectly</strong>. The REST API route definition for <code>yoast/v1/get_head</code> is missing the required <code>permission_callback</code> argument. For REST API routes that are intended to be public, use <code>__return_true</code> as the permission callback. Please see <a href="https://wordpress.org/support/article/debugging-in-wordpress/">Debugg ing in WordPress</a> for more information. (This message was added in version 5.5.0.) in /app/.lando/wordpress/wp-includes/functions.php on line 5225, referer: http://nab5.lndo.site/wp-admin/edit.php

يُبلغ السجل عن إشعار PHP حدث في أحد ملفات WordPress الخاصة ( wp-includes/functions.php ) ، والذي لا يخبرنا بأي شيء عن "المكوّن الإضافي هو الجاني". لحسن الحظ ، إذا قرأت الرسالة بأكملها ، فسترى أنها تصف سبب الفشل (أي استدعاء لوظيفة register_rest_route ) وتعطينا تلميحًا لما قد يكون خطأ: Yoast (انظر كيف يذكر " yoast/v1/get_head " ؟).

تعد سجلات الأخطاء هي أسهل طريقة لمعرفة متى / إذا كان هناك خطأ ما ، وإذا كان كذلك ، فما السبب وراء الخطأ. في هذا المثال بالذات ، اكتشفت أن لدي مشكلة مع Yoast ، وكل ما كان علي فعله هو تحديث المكون الإضافي إلى أحدث إصدار له

إلغاء تنشيط المكونات الإضافية من لوحة معلومات WordPress

لسوء الحظ ، ليس من الممكن دائمًا الوصول إلى سجل أخطاء موقع الويب لمعرفة متى سارت الأمور إلى الجنوب. أو ، إذا كان لديك حق الوصول إلى السجل ، فقد يكون غير مكتمل. في هذه الحالات ، نحتاج إلى صيغ بديلة للتحقق من صحة (أو دحض) فرضيتنا الأولية.

بافتراض فشل موقع الويب الخاص بنا بسبب وجود مكون إضافي خاطئ ، فإن أسهل ما يمكنك فعله هو إلغاء تنشيط جميع المكونات الإضافية والتحقق من استمرار الخطأ. إذا لم يحدث ذلك ، فإن الجاني كان مكونًا إضافيًا ؛ إذا استمرت المشكلة في مكان آخر.

للقيام بذلك ، انتقل إلى لوحة معلومات WordPress » المكونات الإضافية ، وحدد جميع المكونات الإضافية النشطة ، وقم بإلغاء تنشيطها بشكل مجمّع:

قم بإلغاء تنشيط المكونات الإضافية باستخدام الإجراءات المجمعة
كيفية إلغاء تنشيط المكونات الإضافية باستخدام الإجراءات المجمعة.

وتحقق مما إذا كان الخطأ لا يزال يحدث. إذا لم يحدث ذلك ، فأنت تعلم أن سبب المشكلة هو أحد المكونات الإضافية التي ألغيت تنشيطها للتو. حان الوقت الآن لاكتشاف أيهما على وجه التحديد.

لتحديد المكون الإضافي الخاطئ ، يمكنك تنشيطه واحدًا تلو الآخر والتحقق من ظهور الخطأ مرة أخرى. أو ، إذا كنت تريد أن تعمل بشكل أسرع ، يمكنك تطبيق الخطوات التالية:

  1. قم بتنشيط نصف المكونات الإضافية الخاصة بك.
    1. إذا ظهر الخطأ مرة أخرى ، يكون الجاني في النصف الذي قمت بتنشيطه للتو ، لذا يمكنك تنشيط النصف الآخر بأمان.
    2. إذا لم يظهر الخطأ ، يكون الجاني في النصف الآخر.
  2. بمجرد معرفة "المجموعة" المكون الإضافي الخاطئ ، ما عليك سوى التركيز على ذلك وتكرار العملية. قم بتنشيط نصف هذه المجموعة وإلغاء تنشيط النصف الآخر (أي أنك الآن تتحقق من ربع الإجمالي) ، ومعرفة ما إذا كان موقع الويب الخاص بك يعمل بشكل صحيح.
  3. كرر العملية حتى تجد الجاني.

بمجرد معرفة المكون الإضافي الذي فشل ، فإن كيفية إصلاح المشكلة متروك لك. قد تضطر إلى الاتصال بالمطور ، أو محاولة إصلاح المكون الإضافي بنفسك ، أو حتى التفكير في استبداله ببديل. لكن ، على الأقل ، أنت تعرف الآن ما عليك القيام به للتخلص من المشكلة.

النسخ الاحتياطي لقائمة الإضافات النشطة

تذكر صديقي من البداية؟ عندما كنا نحقق في موقعه على الويب ، اتبعنا جميع الخطوات السابقة وقمنا بإلغاء تنشيط جميع المكونات الإضافية على موقعه على الويب ...

... مما نتج عنه شاشة موت بيضاء!

صورة متحركة لرجل مندهش

من الواضح أن الويب كان مليئًا بالمكونات الإضافية المخصصة وتعديلات السمات مع الكثير من التبعيات المتبادلة. من خلال إلغاء تنشيط المكونات الإضافية ، لم تعد بعض الوظائف التي يعتمد عليها الموضوع متوفرة ، مما أدى إلى حدوث خطأ فادح. من الواضح أن هذه ممارسة سيئة: لا يمكن للموضوع أن يعتمد على نشاط مكون إضافي. إذا احتاج إلى بعض الميزات التي يوفرها مكون إضافي معين ، فيجب عليه إجراء فحوصات أمنية للتحقق مما إذا كانت متوفرة أم لا.

على أي حال ، الشيء هو أن الموقع قد تم إغلاقه تمامًا ولم نتمكن من إعادة تنشيط المكونات الإضافية باستخدام لوحة التحكم. إذن ما الحل هنا؟ حسنًا ، بالنسبة للمبتدئين ، يجب أن يكون لديك دائمًا نسخة احتياطية من موقع الويب الخاص بك ... ولكن في هذه الحالة بالذات يوجد حل أسهل وأسرع في متناول اليد.

في قاعدة بيانات WordPress الخاصة بك ، يوجد جدول باسم wp_options . هناك ، ستجد خيارًا يسمى active_plugins . قيمته عبارة عن مصفوفة تحتوي على جميع المكونات الإضافية النشطة. لذلك ، قبل إلغاء تنشيط المكونات الإضافية باستخدام الإجراء المجمع الذي ذكرته من قبل ، ما عليك سوى حفظ هذه القيمة في ملف نصي:

الإضافات النشطة في قاعدة البيانات
الإضافات النشطة في قاعدة البيانات.

بهذه الطريقة ، إذا انتهى "إلغاء تنشيط جميع الملحقات" في WSOD غير مرجح (ولكن ليس مستحيلًا) ، يمكنك إعادة تنشيط جميع المكونات الإضافية عن طريق استعادة خيار active_plugins في قاعدة البيانات.

كيفية إلغاء تنشيط المكونات الإضافية عبر FTP

إذا كنت تعلم أن مشكلتك يتم إنشاؤها بواسطة مكون إضافي معين ولكن ليس لديك طريقة لإلغاء تنشيطها من لوحة معلومات WordPress ، فيمكنك القيام بذلك بأمان عبر FTP.

كما تعلم بالفعل ، فإن المكونات الإضافية ليست أكثر من مجموعة من الملفات. عند تثبيت مكون إضافي جديد على موقع الويب الخاص بك ، ينتهي الكود الخاص به في مجلد wp-content/plugins الخاص بـ WordPress. بالاستفادة من هذه المعرفة ، يمكننا إلغاء تنشيط المكون الإضافي عن طريق "إزالته" من المجلد المذكور.

انتقل إلى cPanel الخاص بالخادم وابحث عن خيار FTP:

خيار FTP في cPanel
خيار FTP في cPanel.

ثم ، باستخدام مستكشف ملفات FTP ، ابحث عن مجلد wp-content/plugins وحدد موقع المكون الإضافي الخاص بك:

مستعرض ملف لوحة التحكم
مستعرض ملف لوحة التحكم.

الآن ، كل ما عليك فعله هو إما حذف المكون الإضافي أو إعادة تسمية مجلده حتى لا يتمكن WordPress من العثور عليه. بهذه الطريقة ، إذا قمت بتسجيل الدخول إلى موقع WordPress الخاص بك ، فلن يرى WordPress المكون الإضافي بعد الآن ولن يتمكن من تحميل الكود الخاطئ ، وبالتالي حل المشكلة التي واجهتها.

استخدم سمة افتراضية

أخيرًا ، إذا كانت الفرضية القائلة بأن المشكلة ناتجة عن أحد المكونات الإضافية الخاصة بك غير صحيحة ، فإن الخطوة التالية هي افتراض أن الجاني هو موضوعك. في هذه الحالة ، كل ما عليك فعله هو تثبيت سمة WordPress افتراضية (مثل Twenty Twenty) ومعرفة ما إذا كانت المشكلة تختفي أم لا. إذا اختفى ، فأنت تعلم بالفعل أن هناك شيئًا خاطئًا في موضوعك الأصلي ؛ إذا لم يكن الأمر كذلك ، فهذا شيء يتعين علينا مناقشته في منشور مختلف.

إذا لم يكن لديك حق الوصول إلى لوحة معلومات WordPress لأي سبب من الأسباب ، فيمكنك تثبيت سمة جديدة على موقع الويب الخاص بك عن طريق تحميلها عبر FTP ( wp-content/themes theme) وتغيير السمة النشطة باستخدام قاعدة البيانات: فقط قم بتعديل template الخيارات وورقة stylesheet في wp_options . على سبيل المثال ، قد ترغب في تعيين كلا الخيارين على twentytwenty ، بافتراض أن هذا هو الموضوع الذي قمت بتحميله.

باختصار

من غير المحتمل أن تفشل WordPress الفانيليا (بدون مكونات إضافية وبدون سمة مخصصة). لذلك ، إذا كانت لديك مشاكل على موقع الويب الخاص بك ، فمن المرجح أن يكون الجاني أحد المكونات الإضافية أو المظهر الخاص بك. في منشور اليوم ، رأينا صيغًا مختلفة للعثور على الجاني ، وإبعاده عن الطريق ، واستعادة موقع الويب. أتمنى مخلصًا ألا تحتاج إلى استخدام أي من هذه الحيل ... ولكن إذا فعلت ذلك ، آمل أن تكون مفيدة.

ماذا عن موقع صديقي؟ حسنًا ، لا أعرف ― يقول بعض الناس إنه غير مهنته ...

صورة مميزة بواسطة Olia Nayda على Unsplash.