- Status
- Warten auf Autor
- Zugehöriges Plugin/Theme
- The Events Calendar
- Themen-Tags
- Compatibility
Übersicht über das Problem
Wenn Sie das Plugin The Events Calendar verwenden, stoßen Sie möglicherweise auf Probleme mit Ereigniskalender-Links, die falsch weiterleiten und Muster wie (/?:month|monat|miesic|…) anzeigen.
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-6815 (updated version for compsupp-7184) */ add_filter( 'tribe_rewrite_canonical_url', 'wpml_compsupp6815_resolve_missing_urls', 10, 3 ); function wpml_compsupp6815_resolve_missing_urls( $resolved, $url, $object ) { if ( class_exists('Sitepress') ) { $wpml_default_lang = apply_filters('wpml_default_language', NULL ); $wpml_current_lang = apply_filters( 'wpml_current_language', NULL ); // Let's register the calendar strings so we can translate and use in the workaround if ($wpml_default_lang == $wpml_current_lang ) { $tec_options = get_option('tribe_events_calendar_options'); $events_slug = $tec_options['eventsSlug']; $single_events_slug = $tec_options['singleEventSlug']; do_action( 'wpml_register_single_string', 'the-events-calendar', 'TEC Calendar Slugs: '.substr($events_slug, 0, 20), $events_slug); do_action( 'wpml_register_single_string', 'the-events-calendar', 'TEC Calendar Slugs: '.substr($single_events_slug, 0, 20), $single_events_slug ); foreach ($tec_options['tribeEnableViews'] as $calendar_string) { do_action( 'wpml_register_single_string', 'the-events-calendar', 'TEC Calendar Slugs: '.substr($calendar_string, 0, 20), $calendar_string); } } // Check if the URL is not resolved yet. If not, we will resolve it with the translated strings if ( preg_match( '#\(/\?\:([^)]+)\)#', $resolved ) ) { $resolved = preg_replace_callback( '#\(/\?\:([^)]+)\)#', function($matches) use ($url) { $options = explode('|', trim($matches[0], '/(?:)')); $slug = $options[0]; $translated_slug = apply_filters('wpml_translate_single_string', $slug , 'the-events-calendar', 'TEC Calendar Slugs: '.substr($slug, 0, 20) ); // Only apply the translation if the string already exists in the URL. If not, replace with the original. This may avoid possible 404 errors if (in_array(strtolower($translated_slug), $options) && $translated_slug != '') { $slug = $translated_slug; } return $slug; }, $resolved ); // Check if there are parameters in the final result and correct the first "&" to "?" if (strpos($resolved, '&') !== false && strpos($resolved, '?') === false) { $resolved = preg_replace('/&/', '?', $resolved, 1); } } } return $resolved; } - Gehen Sie dann zu Einstellungen > Permalinks und speichern Sie Ihre Permalinks erneut.
Hinweis: Wenn das Problem weiterhin besteht, öffnen Sie bitte einen Chat in unserem Support-Kanal.