- סטטוס
- נפתר
- דווח עבור
- 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; }