WPML
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 );
    	}

Tất cả các lỗi đã ghi nhận →