- 상태
- 해결됨
- 보고된 제품
- WPML Multilingual CMS 4.5.14
- 해결된 버전
- WPML 4.6.4
- 관련 플러그인/테마
- Elementor
- 주제 태그
- Compatibility
문제 개요
Elementor 루프 템플릿 기능을 사용하는 경우, 고급 번역 에디터에서 번역이 가능하더라도 프런트엔드에서는 버튼이 번역되지 않습니다.
임시 해결 방법
계속하기 전에 사이트의 전체 백업을 반드시 수행하세요.
- /wp-content/plugins/sitepress-multilingual-cms/addons/wpml-page-builders/classes/Integrations/Elementor/class-wpml-elementor-translate-ids.php 파일을 여세요.
- 108번째 줄을 찾으세요.
- 다음
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; } - WPML → 번역 관리에서 Elementor 루프 템플릿을 번역하세요.