- Статус
- Решено
- Заявлено для
- WPML Multilingual CMS 4.6.3
- Решено в
- WPML 4.6.4
- Теги темы
- Compatibility
Обзор проблемы
При использовании WPML с WordPress 4.7 возникает критическая ошибка из-за того, что блок «Переключатель языков» регистрируется для перевода. Это происходит, даже если Gutenberg не включен.
Это вызывает проблемы совместимости с версиями WordPress ниже 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
Обходное решение
Наши разработчики знают об этой ситуации и готовят бета-версию WPML для её решения. Тем временем:
- Пожалуйста, перед продолжением убедитесь, что у Вас есть полная резервная копия Вашего сайта.
- Откройте файл …/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 ); } }