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

כל התקלות הידועות →