WPML
Статус
Решено автором
Связанный плагин/тема
ThemeREX Addons
Теги темы
Compatibility

Обзор проблемы

При использовании виджета Image Slider из плагина ThemeRex Addons в Elementor переведенные изображения из WPML Media Translation не отображаются на переведенных страницах. Вместо этого на всех языках отображается одно и то же изображение из языка по умолчанию.

Обходное решение

Пожалуйста, прежде чем продолжить, убедитесь, что у Вас есть полная резервная копия Вашего сайта.


  • Откройте файл functions.php Вашей темы оформления и добавьте следующий код
    // WPML Workaround for compsupp-7754
    add_filter( 'elementor/frontend/before_render', 'wpml_compsupp7754_trx_widget_slider_widget');
    
    function wpml_compsupp7754_trx_widget_slider_widget($element) {
    	if ( 'trx_widget_slider' !== $element->get_name() ) {
            return;
        }
    
        $settings = $element->get_settings();
    
        if ( isset( $settings['slides'] ) && is_array( $settings['slides'] ) ) {
            foreach ( $settings['slides'] as $key => $value ) {   
    			if ( is_array($value) && isset( $value['image']['id'] ) ) {
    				$post_type = get_post_type( $value['image']['id'] );      
    				if ( $post_type ) {
    					$translated_id = apply_filters( 'wpml_object_id', $value['image']['id'], $post_type, true );
    					$translated_url = wp_get_attachment_url($translated_id);
    					$settings['slides'][$key]['image']['id'] = $translated_id;
    					$settings['slides'][$key]['image']['url'] = $translated_url;
    				}
    			}
    			
    		}
    
            $element->set_settings( 'slides', $settings['slides'] );
        }
    }

Все известные проблемы →