WPML
状态
已解决
报告针对
WPML Multilingual CMS 4.6.3
解决于
WPML 4.6.4
主题标签
Compatibility

问题概述

当将 WPML 与 WordPress 4.7 结合使用时,由于语言切换器区块被注册用于翻译,会发生致命错误。即使未启用 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 的 Beta 版以修复该问题。在此期间:


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

所有已知问题 →