问题概述
将低于 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 的 Beta 版 (在新标签页中打开),或按照以下说明修补代码,直到发布永久修复程序。在修改任何代码之前,请确保您已对站点进行了完整备份。
前往: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'
] );
}
}
}