- Statut
- Résolu par l’auteur
- Résolu dans
- Bricks 2.3
- Extension/thème associé
- Bricks Theme
Aperçu de l’anomalie
Lorsque vous utilisez Bricks avec WPML, vous pouvez rencontrer un problème où l’ouverture de l’éditeur Bricks pour la langue par défaut redirige vers une URL incorrecte avec un répertoire de langue supplémentaire, ce qui entraîne une erreur 404. Cela peut se produire lorsque WPML est configuré sur Utiliser le répertoire pour la langue par défaut.
Solution de contournement
Solution de contournement 1
Correction facile (sans code)
- Allez dans Bricks > Paramètres > Builder
- Réglez la langue du constructeur sur « Site Default » et enregistrez
Solution de contournement 2
Veuillez vous assurer d’avoir une sauvegarde complète de votre site avant de continuer.
- Ajoutez le code suivant au fichier functions.php de votre thème.
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 );