WPML
الحالة
محلولة
أُبلغ عنها لـ
WPML Multilingual CMS 3.1.9.7
تم حلها في
3.2

نظرة عامة على المشكلة

تصبح الصفحات غير قابلة للاستخدام أو بطيئة جداً في التحميل.

إذا كان بإمكانك مراقبة الاستعلامات التي يتم تنفيذها، فستجد إشارات إلى هذا الاستعلام:

SELECT meta_key

FROM wp_postmeta

GROUP BY meta_key

ORDER BY meta_key

LIMIT 1000;

حل بديل مؤقت

تحتاج إلى إجراء تعديل بسيط في أحد ملفات WPML.

يمكنك استخدام عميل FTP لتعديل هذا الملف.


  1. افتح wp-content/plugins/sitepress-multilingual-cms/inc/translation-management/translation-management.class.php

  2. اذهب إلى السطر 102، حيث يجب أن ترى هذا السطر: $this->initial_custom_field_translate_states();

  3. حوّل هذا السطر إلى تعليق، عن طريق إضافة «//» في بدايته.

  4. احفظ الملف

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

لقد لاحظنا ذروة في الاستعلامات التي يتم تنفيذها في كل من الواجهة الخلفية والواجهة الأمامية. يؤثر هذا فقط في المواقع الكبيرة جداً جداً التي تحتوي على الملايين من إدخالات postmeta (كما هو الحال في مواقعنا).

يأتي هذا الاستعلام من منطق برمجي قديم، والذي لم يعد يؤدي أي وظيفة مهمة. سنقوم بإزالته بالكامل في WPML 3.2.

إذا لاحظت ذروة كبيرة في تحميل الصفحات، فقد ينطبق هذا على حالتك.

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

لذا، نصيحتنا هي تمكين سجل استعلامات MySQL البطيئة والتحقق من الاستعلامات التي تؤثر حقاً على أداء خادمك.

جميع المشاكل المعروفة →