Passer au contenu Passer à la barre latérale

Il s'agit du forum d'assistance technique de WPML, le plug-in multilingue pour WordPress.

Il est accessible à tous, toutefois seuls les clients de WPML peuvent y publier leurs messages. L'équipe du WPML répond sur le forum 6 jours par semaine, 22 heures par jour.

Bonjour & bienvenue sur le forum de soutien WPML. En raison des vacances, le forum français est fermé du 28 juillet à 04 août 2025. D'ici là, veuillez vous adresser à notre support en anglais. Nous vous remercions pour votre compréhension et de votre patience. Équipe de soutien WPML,

Sun Mon Tue Wed Thu Fri Sat
- 8:00 – 13:00 9:00 – 13:00 9:00 – 13:00 8:00 – 12:00 8:00 – 12:00 -
- 14:00 – 17:00 14:00 – 18:00 14:00 – 18:00 13:00 – 17:00 13:00 – 17:00 -

Fuseau horaire du support : Europe/Zagreb (GMT+02:00)

Marqué : 

Ce sujet contient 5 réponses, a 0 voix.

Dernière mise à jour par Bruno Kos Il y a 6 jours et 15 heures.

Assisté par: Bruno Kos.

Auteur Messages
juillet 16, 2025 à 6:56 am

aurelienP-3

Contexte de la question:
Je souhaite traduire les liens sur la page d'accueil de mon site lien caché. Ces liens sont intégrés dans la colonne via le champ Attributs personnalisés d'Elementor sous cette forme : link|/achat-villa-de-luxe-cannes.

Symptômes:
Je ne parviens pas à traduire les liens dans les Attributs personnalisés d'Elementor.

Questions:
Comment puis-je traduire les liens dans les Attributs personnalisés d'Elementor avec WPML ?

juillet 16, 2025 à 8:01 am
juillet 17, 2025 à 7:52 am #17244295

Bruno Kos
Partisan de WPML depuis 12/2018

Les langues: Anglais (English ) Allemand (Deutsch ) Français (Français )

Fuseau horaire: Europe/Zagreb (GMT+02:00)

Nous avons identifié le code suivant dans votre fichier `functions.php` qui gère les attributs `link|...` ajoutés aux colonnes Elementor :

<?php
add_action('elementor/frontend/column/before_render', function($column) {
    $attributes = $column->get_settings('attributes');
    if (!empty($attributes) && is_array($attributes)) {
        foreach ($attributes as $key => $value) {
            // Vérifier si l'attribut contient "link|"
            if (strpos($value, 'link|') === 0) {
                // Extraire l'URL après "link|"
                $url = str_replace('link|', '', $value);

                // Supprimer le préfixe /fr ou /en si présent
                $url = preg_replace('#^/(fr|en)#', '', $url);

                // Ajouter le home_url en fonction de la langue active
                $translated_url = home_url($url);

                // Remplacer l'attribut par la version traduite
                $attributes[$key] = 'link|' . $translated_url;
            }
        }
        $column->set_settings('attributes', $attributes);
    }
});

Pouvez-vous essayer de remplacer `home_url()` par le filtre WPML pour générer une URL adaptée à la langue:

$translated_url = apply_filters('wpml_home_url', home_url()) . $url;

https://wpml.org/wpml-hook/wpml_home_url/

Cela devrait générer des liens dans la bonne langue.

Alternative (si la compatibilité avec l'éditeur de traduction avancée de WPML est indispensable), déplacer les liens dans un champ texte ou widget standard d’Elementor et les enregistrer via la configuration XML de WPML.

juillet 21, 2025 à 7:02 am #17253849

aurelienP-3

Bonjour Bruno,
alors j'ai modifié le code que j'avais mis en place pour tenter de traduire les liens comme suit :

add_action('elementor/frontend/column/before_render', function($column) {
    $attributes = $column->get_settings('attributes');
    if (!empty($attributes) && is_array($attributes)) {
        foreach ($attributes as $key => $value) {
            // Vérifier si l'attribut contient "link|"
            if (strpos($value, 'link|') === 0) {
                // Extraire l'URL après "link|"
                $url = str_replace('link|', '', $value);

                // Supprimer le préfixe /fr ou /en si présent
                $url = preg_replace('#^/(fr|en)#', '', $url);

                // Ajouter le home_url en fonction de la langue active
                $translated_url = apply_filters('wpml_home_url', home_url()) . $url;
				
                // Remplacer l'attribut par la version traduite
                $attributes[$key] = 'link|' . $translated_url;
            }
        }
        $column->set_settings('attributes', $attributes);
    }
});

J'ai vidé les caches, rescanné le thème, je ne vois nul part la possibilité de traduire les URLs.
Ce code dans Fonction.php j'essayé de traduire ce champs, mais peut-être perturbe t-il plus les choses, dois-je le supprimer ?

Merci,
lien caché

juillet 21, 2025 à 12:09 pm #17255456

Bruno Kos
Partisan de WPML depuis 12/2018

Les langues: Anglais (English ) Allemand (Deutsch ) Français (Français )

Fuseau horaire: Europe/Zagreb (GMT+02:00)

Pouvez-vous également nous fournir un accès FTP afin que nous puissions vérifier le code et voir si nous pouvons trouver une solution de contournement ?

Faites-moi savoir si nous pouvons essayer d'apporter des modifications au code qui gère cela et observer le résultat.

juillet 22, 2025 à 9:08 am
juillet 22, 2025 à 2:51 pm #17259903

aurelienP-3

Il semblerai qu'il y ai une erreur critique sur le site (Voir capture)...

Capture d’écran 2025-07-22 à 16.51.17.png
juillet 23, 2025 à 6:15 am #17261656

Bruno Kos
Partisan de WPML depuis 12/2018

Les langues: Anglais (English ) Allemand (Deutsch ) Français (Français )

Fuseau horaire: Europe/Zagreb (GMT+02:00)

J'ai fait un suivi avec le support de second niveau concernant le problème — ils ont tenté quelques solutions, mais aucune n’a fonctionné.

Comme indiqué dans la https://wpml.org/fr/purchase/politique-dassistance/, le code personnalisé ne fait pas partie du support standard. Sur la base de leur recommandation, voici deux options que vous pouvez envisager :

1. Utiliser une solution basée sur un plugin comme https://wordpress.org/plugins/make-column-clickable-elementor/, qui peut offrir la fonctionnalité souhaitée sans nécessiter de code personnalisé.

2. Contacter un prestataire WPML pour obtenir une aide personnalisée : https://wpml.org/contractors/