WPML
상태
해결됨
보고된 제품
WPML Multilingual CMS 4.5.14
해결된 버전
WPML 4.6.4
관련 플러그인/테마
Elementor
주제 태그
Compatibility

문제 개요

Elementor 루프 템플릿 기능을 사용하는 경우, 고급 번역 에디터에서 번역이 가능하더라도 프런트엔드에서는 버튼이 번역되지 않습니다.

임시 해결 방법

계속하기 전에 사이트의 전체 백업을 반드시 수행하세요.


  1. /wp-content/plugins/sitepress-multilingual-cms/addons/wpml-page-builders/classes/Integrations/Elementor/class-wpml-elementor-translate-ids.php 파일을 여세요.

  2. 108번째 줄을 찾으세요.

  3. 다음 WPML_Elementor_Translate_IDs::translate_global_widget_ids() 메서드를:
    public function translate_global_widget_ids( $data_array, $post_id ) {
    		foreach ( $data_array as &$data ) {
    			if ( isset( $data['elType'] ) && 'widget' === $data['elType'] ) {
    				if ( 'global' === $data['widgetType'] ) {
    					$data['templateID'] = $this->translate_id( $data['templateID'] );
    				} elseif ( 'template' === $data['widgetType'] ) {
    					$data['settings']['template_id'] = $this->translate_id( $data['settings']['template_id'] );
    				}
    			}
    			$data['elements'] = $this->translate_global_widget_ids( $data['elements'], $post_id );
    		}
    
    		return $data_array;
    	}

    아래 내용으로 교체하세요:

    public function translate_global_widget_ids( $data_array, $post_id ) {
            foreach ( $data_array as &$data ) {
                if ( isset( $data['elType'] ) && 'widget' === $data['elType'] ) {
                    if ( 'global' === $data['widgetType'] ) {
                        $data['templateID'] = $this->translate_id( $data['templateID'] );
                    } elseif ( 'template' === $data['widgetType'] || 'loop-grid' === $data['widgetType'] || 'loop-carousel' === $data['widgetType']) {
                        $data['settings']['template_id'] = $this->translate_id( $data['settings']['template_id'] );
                    } 
                }
                $data['elements'] = $this->translate_global_widget_ids( $data['elements'], $post_id );
            }
      
            return $data_array;
        }


  4. WPML번역 관리에서 Elementor 루프 템플릿을 번역하세요.

알려진 모든 문제 →