- Statut
- Résolu
- Signalé pour
- WPML Multilingual CMS 4.5.14
- Résolu dans
- WPML 4.6.4
- Extension/thème associé
- Elementor
- Étiquettes de sujet
- Compatibility
Aperçu de l’anomalie
Si vous utilisez la fonctionnalité de template de boucle Elementor, les boutons ne sont pas traduits sur l’interface publique même s’ils sont disponibles pour la traduction dans l’Éditeur de traduction avancé.
Solution de contournement
Assurez-vous de faire une sauvegarde complète de votre site avant de continuer.
- Ouvrez le fichier /wp-content/plugins/sitepress-multilingual-cms/addons/wpml-page-builders/classes/Integrations/Elementor/class-wpml-elementor-translate-ids.php.
- Cherchez la ligne 108.
- Remplacez la méthode
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; }Par :
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; } - Traduisez le modèle de boucle Elementor dans WPML → Gestion de traduction.