WPML

Aperçu de l’anomalie

Le thème Houzez utilise sa propre fonction personnalisée pour appeler ses options de thème. Si la langue par défaut de votre site n’est pas l’anglais, cette fonction entrera en conflit avec WPML. Le résultat est que les traductions ne seront pas affichées sur l’interface publique et qu’elles seront rétablies dans la langue par défaut dans l’interface d’administration.

Solution de contournement

Ce problème est résolu. La mise à jour vers la dernière version résout le problème sur votre site, vous n’avez donc besoin de cette solution de contournement que si vous ne pouvez pas encore mettre à jour.

Avant de continuer, effectuez une sauvegarde complète de votre site.

  1. Ouvrez /wpml-string-translation/inc/admin-texts/wpml-admin-texts.class.php.
  2. Cherchez la ligne 198.
  3. Remplacez :
    function icl_st_set_admin_options_filters() {
    	$option_names = $this->getOptionNames();
    
    	foreach ( $option_names as $option_key => $option ) {
    		if ( $this->is_blacklisted( $option_key ) ) {
    			unset( $option_names[ $option_key ] );
    			update_option( '_icl_admin_option_names', $option_names );
    		} elseif ( $option_key != 'theme' && $option_key != 'plugin' ) { // theme and plugin are an obsolete format before 3.2
    			add_filter( 'option_' . $option_key, array( $this, 'icl_st_translate_admin_string' ) );
    			add_action( 'update_option_' . $option_key, array( $this, 'on_update_original_value' ), 10, 3 );
    		}
    	}
    }
  4. Par :
    function icl_st_set_admin_options_filters() {
    	$option_names = $this->getOptionNames();
    
    	$isAdmin = is_admin() && ! wpml_is_ajax();
    
    	foreach ( $option_names as $option_key => $option ) {
    		if ( $this->is_blacklisted( $option_key ) ) {
    			unset( $option_names[ $option_key ] );
    			update_option( '_icl_admin_option_names', $option_names );
    		} elseif ( $option_key != 'theme' && $option_key != 'plugin' ) { // theme and plugin are an obsolete format before 3.2
    			/**
    			 * We don't want to translate admin strings in admin panel because it causes a lot of confusion
    			 * when a value is displayed inside the form input.
    			 **/
    			if ( ! $isAdmin ) {
    				add_filter( 'option_' . $option_key, array( $this, 'icl_st_translate_admin_string' ) );
    			}
    			add_action( 'update_option_' . $option_key, array( $this, 'on_update_original_value' ), 10, 3 );
    		}
    	}
    }

Prochaines étapes

Ce problème sera résolu lors de la publication de WPML 4.5 (fin septembre 2021).

Toutes les anomalies connues

Vous rencontrez toujours ce problème ?

Si la mise à jour ne résout pas le problème, faites une demande d’assistance et nous l’examinerons avec vous.