- Stato
- Risolto
- Risolto in
- WPML Multilingual CMS 4.7.4
- Plugin/tema correlato
- Elementor
- Tag dell’argomento
- Compatibility
Panoramica del problema
Quando utilizzi il Loop Grid di Elementor Pro con i template alternativi, il contenuto non dinamico tradotto all’interno del template del loop non appare nella lingua corretta nel frontend. Questo problema si verifica perché gli ID dei template alternativi non vengono tradotti.
Soluzione alternativa
Assicurati di avere un backup completo del tuo sito prima di procedere.
- Apri il file functions.php del tuo tema.
- Aggiungi il seguente codice:
// WPML Workaround for compsupp-6865 add_filter('elementor/frontend/before_render', 'wpml_compsupp6865_filter_loop_grid_widget'); function wpml_compsupp6865_filter_loop_grid_widget($element) { if ('loop-grid' !== $element->get_name()) { return $element; } $settings = $element->get_settings(); if (!isset($settings['alternate_templates']) || !is_array($settings['alternate_templates'])) { return $element; } $alternate_settings = $settings['alternate_templates']; foreach ($alternate_settings as $key => $value) { if (empty($value['template_id']) || !is_numeric($value['template_id'])) { continue; } // Use apply_filters to adjust template_id for WPML $id = apply_filters('wpml_object_id', $value['template_id'], get_post_type($value['template_id']), true); if (!is_numeric($id)) { continue; } // Update the template_id in alternate_settings $alternate_settings[$key]['template_id'] = $id; } // Update the settings with the modified alternate_templates $settings['alternate_templates'] = $alternate_settings; $element->set_settings('alternate_templates', $settings['alternate_templates']); }