Sauter la navigation

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.

Ce sujet contient 4 réponses, a 2 voix.

Dernière mise à jour par damienR-7 Il y a 1 année et 10 mois.

Assisté par: Nicolas V..

Auteur Articles
mars 27, 2023 à 1:28 pm #13339153

damienR-7

Bonjour,

Je souhaite rediriger l'utilisateur vers une page dont le slug en français est passé en paramètre de ma page selon la langue préférée de l'utilisateur.
Pour mes tests j'utilise apply-filters avec wpml_permalink avec le nom de la page /mon-compte qui a une page traduite /en/my-account/

Je voudrais donc retrouver /en/my-account en fournissant une url, la langue 'en' et le paramètre true (pour avoir l'url avec la langue). J'ai essayé toutes les URL depuis la plus complète avec lien caché par exemple

echo apply_filters( 'wpml_permalink', '/mon-compte', 'en',true )."<br>";
echo apply_filters( 'wpml_permalink', 'fr/mon-compte', 'en', true )."<br>";

Dans tous les cas, cela me retourne la chaine initiale comme si ce n'était pas reconnu.

Je ne vois pas mon erreur...

mars 27, 2023 à 9:21 pm #13343233

Nicolas V.
Supporter

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

Fuseau horaire: America/Lima (GMT-05:00)

Bonjour,

Bienvenue sur le support de WPML.

1. Commençons par remplir les exigences minimales de WPML. Je vois que vous avez une allocation de mémoire PHP très basse (40M). La configuration minimale requise pour WPML est de 128M, mais nous recommandons 256M :

Accédez à votre serveur via FTP et ouvrez le fichier wp-config.php (dans le root de votre WordPress).

Insérez ces lignes juste avant /* That's all, stop editing! Happy blogging. */

/* Memory Limit */
define( 'WP_MEMORY_LIMIT', '256M' );

Plus d'info: https://wpml.org/fr/accueil/exigences-minimales/

2. J'ai bien lu que vous avez essayé l'url complète mais pour être bien sûr, avez vous essayé:

echo apply_filters( 'wpml_permalink', '<em><u>lien caché</u></em>', 'en', true ); 

Comme cela est mentionné dans la documentation, c'est un process un peu lourd comme merci de ressayer après l'augmentation de mémoire et il est parfois nécessaire d'aller dans "Réglages > Permaliens" pour purger les liens.

Nico

mars 28, 2023 à 7:03 am #13345901

damienR-7

Bonjour,

J'ai changé la mémoire et j'ai enregistré à nouveau les réglages de permaliens (je suppose que c'est comme cela que l'on vide le cache). Par contre je ne sais pas s'il y a une façon de s'assurer que le réglage mémoire est pris en compte (redémarrage de wordpress ?).

J'ai inséré :
echo "traduction : " . apply_filters( 'wpml_permalink', 'lien caché', 'en', true );

J'obtiens toujours :
traduction : lien caché

mars 28, 2023 à 6:23 pm #13352165

Nicolas V.
Supporter

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

Fuseau horaire: America/Lima (GMT-05:00)

Bonjour,

Pour la mémoire il est possible de vérifier dans "WPML > Assistance > WordPress (section)", le champ est "Limite de mémoire".

Concernant le code, je viens de réaliser que la page "Account est gérée par WooCommerce.
Bien que les codes personnalisés ne rentrent pas dans notre politique de support, en cherchant rapidement j'ai trouvé:

echo get_permalink( get_option('woocommerce_myaccount_page_id') );

Cela vous donnera le lien (fonction get_permalink de WP) de la page WooCommerce "My account".
WPML se chargera de présenter le lien dans la langue visitée par la client.

Nico