WPML
Статус
Решено
Заявлено для
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 для её решения. Тем временем:


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

Все известные проблемы →