- 状态
- 已解决
- 报告针对
- 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 循环模板。