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

جميع المشاكل المعروفة →