- Status
- Gelöst
- Gelöst in
- WPML Multilingual CMS 4.7.4
- Zugehöriges Plugin/Theme
- Elementor
- Themen-Tags
- Compatibility
Übersicht über das Problem
Bei der Verwendung des Loop-Grids von Elementor Pro mit alternativen Templates werden nicht-dynamische Inhalte, die innerhalb des Loop-Templates übersetzt wurden, im Frontend nicht in der richtigen Sprache angezeigt. Dieses Problem tritt auf, weil die IDs der alternativen Templates nicht übersetzt werden.
Problemumgehung
Bitte erstellen Sie ein vollständiges Backup Ihrer Website, bevor Sie fortfahren.
- Öffnen Sie die Datei functions.php Ihres Themes.
- Fügen Sie den folgenden Code hinzu:
// 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']); }