문제 개요
5.9.0 미만 버전의 WordPress를 WPML 4.6.9와 함께 사용하면 치명적인 오류가 발생할 수 있습니다:
Uncaught Error: Call to undefined function WPMLBlockEditor::wp_enqueue_block_style() in /wp-content/plugins/sitepress-multilingual-cms/classes/block-editor/Loader.php:97
임시 해결 방법
이 문제는 WPML 4.6.10에서 해결되었습니다. 업데이트하면 사이트에서 문제가 해결되므로, 아직 업데이트할 수 없는 경우에만 이 임시 해결 방법이 필요합니다.
WPML 4.6.8로 다운그레이드하거나, WPML V4.6.10 베타 버전을 사용해 보거나 (새 탭에서 열림), 영구적인 수정 사항이 발표될 때까지 아래 지침에 따라 코드를 패치할 수 있습니다. 코드를 수정하기 전에 사이트를 전체 백업하세요.
wp-content/plugins/sitepress-multilingual-cms/classes/block-editor/Loader.php로 이동하여 \WPML\BlockEditor\Loader::maybeEnqueueNavigationBlockStyles 메서드를 찾은 다음 아래 내용으로 교체하세요:
public function maybeEnqueueNavigationBlockStyles() {
global $wp_version;
if ( version_compare($wp_version, '5.9.0' ) >= 0) {
if ( ! wp_style_is( 'wp-block-navigation', 'enqueued' ) || ! wp_style_is( 'wp-block-navigation', 'queue' ) ) {
wp_enqueue_block_style( LanguageSwitcher::BLOCK_LANGUAGE_SWITCHER, [
'handle' => 'wp-block-navigation'
] );
}
}
}