WPML
ステータス
解決済み
報告対象
WPML Multilingual CMS 4.6.3
解決されたバージョン
WPML 4.6.4
トピックタグ
Compatibility

問題の概要

WordPress 4.7でWPMLを使用すると、言語スイッチャーブロックが翻訳用に登録されているため、致命的なエラーが発生します。これは、Gutenbergが有効化されていない場合でも発生します。

これにより、5.0未満のWordPressバージョンで互換性の問題が発生します。

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

回避策

開発チームはこの状況を認識しており、修正のためのWPMLのベータ版を準備しています。それまでの間は、以下の手順を実行してください。


  1. 続行する前に、必ずサイトの完全なバックアップを作成してください。

  2. …/wp-content/plugins/sitepress-multilingual-cms/classes/block-editor/Loader.phpファイルを開きます。

  3. 57行目を探します。

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

    変更後:

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

すべての既知の問題 →