- Trạng thái
- Đang mở
- Được báo cáo cho
- WPML Multilingual CMS 4.6.7
- Thẻ chủ đề
- Bug
Tổng quan về lỗi
Nếu bạn đang sử dụng tùy chọn Sử dụng thư mục cho ngôn ngữ mặc định và bạn thêm một Khối Bộ chuyển đổi ngôn ngữ trên trang gốc, nó sẽ trỏ sai đến ngôn ngữ mặc định mà không có thư mục. (tức là '/' thay vì '/en’).
Vấn đề này ngăn người dùng chọn ngôn ngữ mặc định trên các trang cụ thể này.
Giải pháp tạm thời
Vui lòng đảm bảo có bản sao lưu toàn bộ trang web của bạn trước khi tiếp tục.
- Mở tệp …/wp-content/plugins/sitepress-multilingual-cms/classes/language-switcher/class-wpml-ls-model-build.php.
- Tìm dòng 64.
- Thay đổi:
public function get( $slot, $template_data = [] ) { $vars = []; $vars['current_language_code'] = $this->sitepress->get_current_language(); $vars['languages'] = $this->get_language_items( $slot, $template_data ); $vars['css_classes'] = $this->get_slot_css_classes( $slot ); $vars['css_classes_link'] = self::LINK_CSS_CLASS; $vars = $this->add_backward_compatibility_to_wrapper( $vars, $slot ); return $this->sanitize_vars( $vars, $this->allowed_vars ); } - Thành:
public function get( $slot, $template_data = [] ) { global $sitepress; $vars = []; $vars['current_language_code'] = $this->sitepress->get_current_language(); $vars['languages'] = $this->get_language_items( $slot, $template_data ); $vars['css_classes'] = $this->get_slot_css_classes( $slot ); $vars['css_classes_link'] = self::LINK_CSS_CLASS; if(true === $sitepress->get_setting( 'urls' )['directory_for_default_language'] ) { $vars['current_language_code'] = "root"; } $vars = $this->add_backward_compatibility_to_wrapper( $vars, $slot ); return $this->sanitize_vars( $vars, $this->allowed_vars ); }