- ステータス
- 解決済み
- 報告対象
- 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ループテンプレートを翻訳します。