- Trạng thái
- Đã được giải quyết bởi nhà phát triển
- Đã giải quyết trong
- Bricks 2.3
- Plugin/giao diện liên quan
- Bricks Theme
Tổng quan về lỗi
Khi sử dụng Bricks với WPML, bạn có thể gặp sự cố trong đó việc mở trình chỉnh sửa Bricks cho ngôn ngữ mặc định bị chuyển hướng đến một URL không chính xác có thêm thư mục ngôn ngữ, dẫn đến lỗi 404. Điều này có thể xảy ra khi WPML được thiết lập thành Sử dụng thư mục cho ngôn ngữ mặc định.
Giải pháp tạm thời
Giải pháp tạm thời 1
Khắc phục dễ dàng (không cần mã)
- Truy cập Bricks > Cài đặt > Builder
- Đặt ngôn ngữ của builder thành “Site Default” và lưu
Giải pháp tạm thời 2
Vui lòng đảm bảo bạn có bản sao lưu toàn bộ trang web trước khi tiếp tục.
- Thêm mã sau vào tệp functions.php trong giao diện của bạn.
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 );