قدّم WPML 3.9 إمكانية عرض المحتوى القادم من اللغة الأصلية عند عرض الصفحات بلغات أخرى. إذا كان موقعك يعتمد على تكرار المحتوى قبل الإصدار 3.9، فقد ترغب في حذف كل المحتوى المكرر من موقعك قبل استخدام وضع الترجمة الجديد هذا.
كيفية استخدام هذا الدليل
تؤدي الخطوات المقدّمة في هذه الصفحة إلى إزالة الإعدادات والمحتويات من قاعدة البيانات. لا تتابع إلا إذا كنت تعرف ما تفعله، وابدأ حتماً بإنشاء نسخة احتياطية كاملة لقاعدة بيانات موقعك.
لاستخدام استعلامات SQL المقدّمة، يجب عليك تعديلها:
- استبدل XXXX بنوع المنشور الذي ترغب في حذف المحتويات المكررة له (على سبيل المثال، «post» أو «product» أو «page»).
- استبدل YYYY برمز اللغة الافتراضية للموقع (على سبيل المثال، «en»).
- استبدل wp_ ببادئة الجدول المكوّنة باستخدام المتغير $table_prefix في ملف wp-config.php (البادئة الافتراضية هي wp_).
أخيراً، تحتاج إلى تشغيل هذه الاستعلامات باستخدام إحدى أدوات العمل مع قواعد بيانات SQL، على سبيل المثال، phpMyAdmin.
1. إزالة المحتوى المكرر
حذف المحتوى المكرر من wp_posts
DELETE FROM wp_posts
WHERE post_type = 'XXXX' AND ID IN (
SELECT pm.post_id
FROM wp_postmeta pm
JOIN wp_icl_translations t ON t.element_id = pm.meta_value
WHERE pm.meta_key = '_icl_lang_duplicate_of' AND pm.meta_value > 0 AND
t.element_type LIKE 'post_%' AND t.language_code = 'YYYY'
)2. إزالة إعدادات الترجمة
حذف إعدادات الترجمة من wp_icl_translations
DELETE FROM wp_icl_translations
WHERE element_type = 'post_XXXX' AND element_id IN (
SELECT pm.post_id
FROM wp_postmeta pm
JOIN wp_icl_translations t ON t.element_id = pm.meta_value
WHERE meta_key = '_icl_lang_duplicate_of' AND meta_value > 0 AND t.language_code = 'YYYY'
)3. إزالة البيانات الوصفية اليتيمة للمنشورات
يُرجى ملاحظة أن تنفيذ هذا الاستعلام بطيء وقد تنتهي مهلته، وذلك بناءً على إعدادات خادمك. بالإضافة إلى ذلك، ليس من الضروري تشغيل هذا الاستعلام لأنه يُستخدم فقط لمسح أي بيانات وصفية يتيمة للمنشورات من قاعدة بياناتك.
حذف البيانات اليتيمة من wp_postmeta
DELETE pm FROM wp_postmeta pm LEFT JOIN wp_posts wp ON wp.ID = pm.post_id WHERE wp.ID IS NULL