- 状态
- 已由作者解决
- 解决于
- Bricks 2.3
- 相关插件/主题
- Bricks Theme
问题概述
将Bricks与 WPML 结合使用时,您可能会遇到一个问题:为默认语言打开 Bricks 编辑器时,会重定向到带有额外语言目录的错误 URL,从而导致 404 错误。当 WPML 设置为为默认语言使用目录时,可能会发生这种情况。
临时解决方法
临时解决方法 1
简单修复(无需代码)
- 前往 Bricks > 设置 > Builder
- 将 builder 语言设置为“Site Default”并保存
临时解决方法 2
在继续操作之前,请确保对您的站点进行完整备份。
- 将以下代码添加到主题的 functions.php 文件中。
add_action( 'after_setup_theme', function () { if ( ! defined( 'ICL_SITEPRESS_VERSION' ) || ! class_exists( 'BricksTheme' ) ) { return; } $bricks = BricksTheme::instance(); // 1. Prevent Bricks from switching language if ( ! empty( $bricks->wpml ) ) { remove_action( 'bricks/builder/switch_locale', [ $bricks->wpml, 'switch_builder_languge' ] ); } // 2. Instead switch UI locale add_action( 'bricks/builder/switch_locale', function ( $locale ) { if ( empty( $locale ) || empty( $_GET['bricks'] ) || $_GET['bricks'] !== 'run' ) { return; } // prevent memory exhausion I got on my sandbox static $lock = false; if ( $lock ) { return; } $lock = true; try { // Switch UI locale switch_to_locale( $locale ); // Reload Bricks theme textdomain unload_textdomain( 'bricks' ); load_theme_textdomain( 'bricks', get_template_directory() . '/languages' ); } finally { $lock = false; } }, 5, 1 ); }, 20 );