- Estado
- Resuelto por el autor
- Resuelto en
- Bricks 2.3
- Plugin/tema relacionado
- Bricks Theme
Resumen del problema
Al usar Bricks con WPML, es posible que experimente un problema en el que abrir el editor de Bricks para el idioma predeterminado redirige a una URL incorrecta con un directorio de idioma adicional, lo que provoca un error 404. Esto puede ocurrir cuando WPML está configurado para usar directorio para el idioma por defecto.
Solución alternativa
Solución alternativa 1
Solución sencilla (sin código)
- Vaya a Bricks > Configuración > Builder
- Establezca el idioma del constructor en «Site Default» y guarde
Solución alternativa 2
Por favor, asegúrese de tener una copia de seguridad completa de su sitio antes de continuar.
- Añada el siguiente código al archivo functions.php de su tema.
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 );