WPML
상태
미해결
보고된 제품
WPML Multilingual CMS 4.6.7
주제 태그
Bug

문제 개요

기본 언어에 디렉토리 사용 옵션을 사용하고 루트 페이지에 언어 전환기 블록을 추가하면, 디렉토리가 없는 기본 언어를 잘못 가리킵니다(예: '/en’ 대신 '/').

이 문제로 인해 사용자는 해당 특정 페이지에서 기본 언어를 선택할 수 없습니다.

임시 해결 방법

진행하기 전에 사이트의 전체 백업을 생성하세요.


  • …/wp-content/plugins/sitepress-multilingual-cms/classes/language-switcher/class-wpml-ls-model-build.php 파일을 여세요.

  • 64번째 줄을 찾으세요.

  • 변경 전:
    	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 );
    	}

  • 변경 후:
    	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 );
    	}

알려진 모든 문제 →