WPML
الحالة
محلولة
تم حلها في
WPML Multilingual CMS 4.7.4
الإضافة/القالب ذو الصلة
Elementor
وسوم الموضوع
Compatibility

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

عند استخدام Loop Grid في Elementor Pro مع قوالب بديلة، لا يظهر المحتوى غير الديناميكي المترجم داخل قالب loop باللغة الصحيحة في الواجهة الأمامية. تحدث هذه المشكلة لأن معرفات القوالب البديلة غير مترجمة.

حل بديل مؤقت

يُرجى التأكد من أخذ نسخة احتياطية كاملة لموقعك قبل المتابعة.


  • افتح ملف functions.php في قالبك.

  • أضف الكود التالي:
    // WPML Workaround for compsupp-6865
    add_filter('elementor/frontend/before_render', 'wpml_compsupp6865_filter_loop_grid_widget');
    
    function wpml_compsupp6865_filter_loop_grid_widget($element) {
        if ('loop-grid' !== $element->get_name()) {
            return $element;
        }
    
        $settings = $element->get_settings();
    
        if (!isset($settings['alternate_templates']) || !is_array($settings['alternate_templates'])) {
            return $element;
        }
    
        $alternate_settings = $settings['alternate_templates'];
    
        foreach ($alternate_settings as $key => $value) {
            if (empty($value['template_id']) || !is_numeric($value['template_id'])) {
                continue;
            }
    
            // Use apply_filters to adjust template_id for WPML
            $id = apply_filters('wpml_object_id', $value['template_id'], get_post_type($value['template_id']), true);
            if (!is_numeric($id)) {
                continue;
            }
    
            // Update the template_id in alternate_settings
            $alternate_settings[$key]['template_id'] = $id;
        }
    
        // Update the settings with the modified alternate_templates
        $settings['alternate_templates'] = $alternate_settings;
        $element->set_settings('alternate_templates', $settings['alternate_templates']);
    }

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