- Trạng thái
- Đang chờ nhà phát triển
- Plugin/giao diện liên quan
- The Events Calendar
- Thẻ chủ đề
- Compatibility
Tổng quan về lỗi
Nếu bạn đang sử dụng plugin The Events Calendar, bạn có thể gặp sự cố với các liên kết lịch sự kiện chuyển hướng không chính xác, hiển thị các mẫu như (/?:month|monat|miesic|…).
Giải pháp tạm thời
Vui lòng đảm bảo có một bản sao lưu đầy đủ trang web của bạn trước khi tiếp tục.
- Mở tệp functions.php trong giao diện của bạn.
- Thêm đoạn mã sau:
/* * 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; } - Sau đó, truy cập Cài đặt > Đường dẫn tĩnh và lưu lại các đường dẫn tĩnh của bạn.
Lưu ý: nếu sự cố vẫn tiếp diễn, vui lòng mở một cuộc trò chuyện trong kênh hỗ trợ của chúng tôi.