Passer au contenu Passer à la barre latérale

Ce sujet est résolu. Voici une description du problème et de la solution.

Problème :
Vous souhaitez traduire des liens intégrés dans les Attributs personnalisés d'Elementor sur votre page d'accueil, mais vous ne parvenez pas à les traduire avec WPML.
Solution :
Nous avons identifié un code dans votre fichier

functions.php

qui gère les attributs

link|...

ajoutés aux colonnes Elementor. Pour résoudre ce problème, remplacez

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;

Pour plus d'informations sur ce filtre, consultez https://wpml.org/wpml-hook/wpml_home_url/
Si vous avez besoin de compatibilité avec l'éditeur de traduction avancée de WPML, envisagez de déplacer les liens dans un champ texte ou widget standard d’Elementor et de les enregistrer via la configuration XML de WPML.
Si ces solutions ne fonctionnent pas, vous pouvez envisager d'utiliser un plugin comme https://wordpress.org/plugins/make-column-clickable-elementor/ ou de contacter un prestataire WPML pour une aide personnalisée : https://wpml.org/contractors/

Si cette solution ne vous semble pas pertinente ou si elle est obsolète, nous vous recommandons de vérifier les problèmes connus sur https://wpml.org/known-issues/, de vérifier la version du correctif permanent et de confirmer que vous avez installé les dernières versions des thèmes et plugins. Si le problème persiste, n'hésitez pas à ouvrir un nouveau ticket de support sur notre forum de support.

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.

Marqué : 

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

Dernière mise à jour par Bruno Kos Il y a 2 semaines et 1 jour.

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/