WPML
Statut
Ouvert
Signalé pour
WPML Multilingual CMS 4.6.7
Étiquettes de sujet
Bug

Aperçu de l’anomalie

Si vous utilisez l’option Utiliser le répertoire pour la langue par défaut et que vous ajoutez un bloc Sélecteur de langue sur la page racine, celui-ci pointe par erreur vers la langue par défaut sans le répertoire. (c’est-à-dire '/' au lieu de '/en’).

Ce problème empêche les utilisateurs de sélectionner la langue par défaut sur ces pages spécifiques.

Solution de contournement

Assurez-vous d’avoir une sauvegarde complète de votre site avant de continuer.


  • Ouvrez le fichier …/wp-content/plugins/sitepress-multilingual-cms/classes/language-switcher/class-wpml-ls-model-build.php.

  • Recherchez la ligne 64.

  • Remplacez :
    	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 );
    	}

  • Par :
    	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 );
    	}

Toutes les anomalies connues →