- الحالة
- محلولة
- أُبلغ عنها لـ
- WPML Multilingual CMS 4.6.15
- تم حلها في
- WPML 4.7.5
- الإضافة/القالب ذو الصلة
- Elementor
- وسوم الموضوع
- Compatibility
نظرة عامة على المشكلة
عند استخدام ودجت الصورة لـ Elementor، قد تظل النسخة المترجمة من الصفحة تشير إلى الصورة الخاصة باللغة الأصلية، مما يؤدي إلى عرض نص ALT غير صحيح في اللغة الثانوية.
حل بديل مؤقت
يُرجى التأكد من أخذ نسخة احتياطية كاملة لموقعك قبل المتابعة.
- افتح ملف functions.php في قالبك.
- أضف المقتطف التالي:
// WPML: Find translatable IDs in Elementor Widgets add_filter( 'elementor/frontend/before_render', 'wpml_compsupp_find_translatable_post_ids_in_settings' ); function wpml_compsupp_find_translatable_post_ids_in_settings( $element ) { $widget_name = $element->get_name(); $settings = $element->get_settings(); // Recursively translate post IDs in settings array $translated_settings = wpml_compsupp_find_translatable_post_ids_in_array( $settings, $widget_name ); $element->set_settings( $translated_settings ); } function wpml_compsupp_find_translatable_post_ids_in_array( $settings, $widget_name, $path = [] ) { $apply_translations = true; // if set to false, translated IDs are not applied to the content foreach ( $settings as $key => &$value ) { // Translate IDs and handle nested settings $currentPath = array_merge($path, [$key]); if ( is_array( $value ) || is_object( $value ) ) { // If the value is an array or object, run the function recursively $value = wpml_compsupp_find_translatable_post_ids_in_array((array)$value, $widget_name, $currentPath); } elseif ( is_numeric( $value ) && $value != 0 ) { // Translate post ID if it is numeric and a valid post type exists $post_type = get_post_type( $value ); $post_status = get_post_status( $value ); if ( $post_type && $post_status == 'publish' ) { $translated_value = apply_filters( 'wpml_object_id', $value, $post_type, true ); if ($apply_translations === true ) { $value = $translated_value; } } } } return $settings; }