WPML
ステータス
開発者により解決済み
関連するプラグイン/テーマ
ThemeREX Addons
トピックタグ
Compatibility

問題の概要

ElementorでThemeRex AddonsプラグインのImage Sliderウィジェットを使用する場合、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'] );
        }
    }

すべての既知の問題 →