- 状态
- 已解决
- 报告针对
- 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 版以修复该问题。在此期间:
- 在继续之前,请确保对您的站点进行完整备份。
- 打开 …/wp-content/plugins/sitepress-multilingual-cms/classes/block-editor/Loader.php 文件。
- 找到第 57 行。
- 将:
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 ); } }