WPML
Statut
Résolu
Signalé pour
WPML Multilingual CMS 4.6.3
Résolu dans
WPML 4.6.4
Étiquettes de sujet
Compatibility

Aperçu de l’anomalie

Lors de l’utilisation de WPML avec WordPress 4.7, une erreur fatale se produit car le bloc Sélecteur de langue est enregistré pour la traduction. Cela se produit même si l’éditeur Gutenberg n’est pas activé.

Cela provoque des problèmes de compatibilité avec les versions de WordPress antérieures à 5.0.

Fatal error: Uncaught Error: Call to undefined function WPML\BlockEditor\Blocks\register_block_type() in …/wp-content/plugins/sitepress-multilingual-cms/classes/block-editor/Blocks/LanguageSwitcher.php:47

Solution de contournement

Nos développeurs sont informés de cette situation et préparent une version bêta de WPML pour la corriger. En attendant :


  1. Veuillez vous assurer de disposer d’une sauvegarde complète de votre site avant de continuer.

  2. Ouvrez le fichier …/wp-content/plugins/sitepress-multilingual-cms/classes/block-editor/Loader.php.

  3. Cherchez la ligne 57.

  4. Remplacez :
    	public function registerBlocks() {
    		$LSLocalizedScriptData     = make( LanguageSwitcher::class )->register();
    		$this->localizedScriptData = array_merge( $this->localizedScriptData, $LSLocalizedScriptData );
    	}

    Par :

    	public function registerBlocks() {
    		if ( \WPML_Block_Editor_Helper::is_active() ) {
    			$LSLocalizedScriptData     = make( LanguageSwitcher::class )->register();
    			$this->localizedScriptData = array_merge( $this->localizedScriptData, $LSLocalizedScriptData );
    		}
    	}

Toutes les anomalies connues →