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

Tất cả các lỗi đã ghi nhận →