WPML
الحالة
محلولة
تم حلها في
2.3.8

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

بدءاً من الإصدار 2.3.0 من إضافة WPML Media Translation، أصبح من الممكن ترجمة الوسائط ومزامنتها بين الترجمات.

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

يساعد تمييز المقالات التي تحتوي على وسائط فيما بعد، بحيث عند وقوع أحداث معينة تتعلق بترجمة الوسائط (مثل ترجمة مقالة وسائط معينة)، تُفحص فقط المقالات التي تتضمن وسائط بالفعل من أجل تحديث المحتوى بالوسائط المترجمة.

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

في الغالب، يحدث هذا الضغط بسبب الاستعلامات اللازمة لتحديد معرفات المرفقات بناءً على عناوين URL. عادةً، يمكن تحديد معرف المرفق من سمات وسم HTML (على سبيل المثال id=”attachment_8” – هنا، 8 هو معرف المرفق). عندما لا تُستخدم مثل هذه السمة، يحدد WPML Media المعرف من عنوان URL الفعلي. في هذه الحالة، يُستخدم نوعان من الاستعلامات:

  • استعلام يتطابق مع حقل ‘guid’ في جدول wp_posts
  • استعلام آخر يتطابق مع حقول meta_value في جدول wp_postmeta.

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

حل بديل مؤقت

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

ALTER TABLE `wp_posts` ADD INDEX `guid` (`guid`); ALTER TABLE `wp_postmeta` ADD INDEX `meta_value` (`meta_value`(512));

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

ALTER TABLE `wp_posts` DROP INDEX `guid`; ALTER TABLE `wp_postmeta` DROP INDEX `meta_value`;

ملاحظة: يمكن أن تكون البادئة wp_ للجداول المذكورة في الاستعلامات مختلفة وفقاً لإعدادات WordPress الخاصة بك. عادةً وافتراضياً، تكون wp_

مثال دراسة حالة: في موقع يحتوي على حوالي 140,000 مرفق وحوالي 5,000 مقالة، يمكن أن يستغرق الإعداد أكثر من 30 دقيقة ليكتمل. بعد إضافة الفهارس، يستغرق الإعداد بضع دقائق. أُجريت الاختبارات في بيئة تطوير عادية. يمكن أن تكون هذه القيم أفضل على خادم مباشر فعلي.

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