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.

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 supporter: Europe/Zagreb (GMT+01:00)

Marqué : 

Ce sujet contient 0 réponse, a 2 voix.

Dernière mise à jour par Bruno Kos Il y a 1 heure et 21 minutes.

Assisté par: Bruno Kos.

Auteur Articles
Novembre 7, 2024 à 11:01 am #16376523

yvesR

Contexte de la question:
J'essaie d'utiliser le premier filtre de taxonomie en italien sur notre site multilingue, construit avec Elementor et WPML, afin de filtrer les articles dans la catégorie 'Aziende alimentari'. Le problème peut être vu sur la page suivante : lien caché

Symptômes:
En italien, le filtre de taxonomie ne fonctionne pas pour la catégorie 'Aziende alimentari'. Aucune publication n’est affichée lorsqu’on sélectionne cette catégorie, même si elle contient bien 5 articles. Le filtre fonctionne correctement dans toutes les autres langues.

Questions:
Pourquoi le filtre de taxonomie ne fonctionne-t-il pas pour la catégorie 'Aziende alimentari' en italien ?
Comment puis-je résoudre ce problème pour que le filtre fonctionne correctement en italien ?

Novembre 8, 2024 à 8:32 am #16380950

Bruno Kos
Supporter

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

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

Pourriez-vous essayer ce qui suit:

1. **Créer un nouveau plugin** :
- Insérez le code fourni dans un nouveau fichier de plugin et enregistrez-le dans le dossier `mu-plugins`. Voici le code:

<?php
/**
 * Plugin Name: wpmlsupp-11907
 * Description: Fix for Elementor REST query missing language
 * Author: OTGSSupport
 * Version: 1.0
 */
add_filter( 'wpml_get_language_from_url', function($lang, $url){

    if ( strpos($url, 'wp-json/elementor-pro/v1/refresh-loop') ) {

        $current_language = isset($_COOKIE['wp-wpml_current_language']) ? sanitize_text_field(wp_unslash($_COOKIE['wp-wpml_current_language'])) : null;
            
        if ( $current_language ) {
            $lang = $current_language;
        }
    }

    return $lang;
}, 10, 2 );

2. **Vérifier l’implémentation** :
- Assurez-vous que le plugin est correctement enregistré et actif dans le dossier `mu-plugins`.
- Videz les éventuels caches qui pourraient influencer l’activation du plugin.

Est-ce que cela aide?

Novembre 14, 2024 à 10:41 am #16401706

yvesR

J'ai ajouté dans le fichier `mu-plugins` ensuite, j'ai nettoyé les caches, mais toujours pas

Capture d’écran 2024-11-14 à 11.38.26.png
Novembre 14, 2024 à 1:38 pm #16402903

Bruno Kos
Supporter

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

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

Pour résoudre ce problème, je vais installer le plugin Duplicator et générer des packages à des fins de débogage ultérieur. Je veillerai à exclure tous les fichiers multimédias pour maintenir une taille de package minimale. Vous pouvez trouver plus d'informations sur le processus ici : [lien](https://wpml.org/faq/provide-supporters-copy-site/). Veuillez confirmer si cette approche vous convient.

Novembre 14, 2024 à 1:59 pm #16403019

yvesR

Ok, ça marche

Novembre 18, 2024 à 6:27 am #16412840

Bruno Kos
Supporter

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

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

Je ne peux pas installer Duplicator en raison des politiques de Kinsta: lien caché

Pouvez-vous télécharger le paquet et l'envoyer sur Dropbox ou ailleurs et m'envoyer l'URL?
lien caché

Novembre 22, 2024 à 12:48 pm #16433928

Bruno Kos
Supporter

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

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

Ce problème a été transmis à notre équipe de deuxième niveau et peut prendre un certain temps de débogage. Je reviendrai vers vous dès que j'aurai des nouvelles ou des questions à vous poser.

Novembre 25, 2024 à 6:10 am #16437840

Bruno Kos
Supporter

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

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

Le problème vient du fait que le terme **"Aziende alimentari"** est un terme parent avec plusieurs sous-termines, contrairement à **"catene-gruppi-e-franchising"**, qui n’a pas de sous-termines. Cela ne pose pas de problème avec notre code, car la requête SQL fonctionne comme prévu. Voici la requête générée :

SELECT SQL_CALC_FOUND_ROWS wp_posts.ID
FROM wp_posts  
JOIN wp_icl_translations wpml_translations
  ON wp_posts.ID = wpml_translations.element_id
  AND wpml_translations.element_type = CONCAT('post_', wp_posts.post_type) 
WHERE 1=1  
AND ( 
  (
    SELECT COUNT(1)
    FROM wp_term_relationships
    WHERE term_taxonomy_id IN (102,145,146,147,148,149)
    AND object_id = wp_posts.ID
  ) = 6
)
AND wp_posts.post_type = 'post' 
AND ((wp_posts.post_status = 'publish')) 
AND ( 
  ( 
    ( wpml_translations.language_code = 'it' 
      OR (
        wpml_translations.language_code = 'en'
        AND wp_posts.post_type IN ('e-landing-page','e-floating-buttons','elementor_library')
        AND ( 
          (SELECT COUNT(element_id)
           FROM wp_icl_translations
           WHERE trid = wpml_translations.trid
           AND language_code = 'it') = 0
        )
        OR ( 
          (SELECT COUNT(element_id)
           FROM wp_icl_translations t2
           JOIN wp_posts p ON p.id = t2.element_id
           WHERE t2.trid = wpml_translations.trid
           AND t2.language_code = 'it'
           AND (p.post_status = 'publish' OR p.post_status = 'private' 
                OR (p.post_type = 'attachment' AND p.post_status = 'inherit'))
          ) = 0
        )
      )
    )
  )
  AND wp_posts.post_type IN ('post','page','attachment','wp_block','wp_template','wp_template_part','wp_navigation','e-landing-page','e-floating-buttons','elementor_library')
) 
OR wp_posts.post_type NOT IN ('post','page','attachment','wp_block','wp_template','wp_template_part','wp_navigation','e-landing-page','e-floating-buttons','elementor_library')
)
GROUP BY wp_posts.ID
ORDER BY wp_posts.post_date DESC
LIMIT 0, 8;

La requête récupère les publications associées au terme de taxonomie **"aziende-alimentari"** (ID 102) mais ne renvoie aucun résultat en raison de la présence des sous-termines (145, 146, 147, 148, 149). La condition dans la requête exige de correspondre à tous ces termes, ce qui n’est pas rempli.

Pour résoudre ce problème, supprimez les sous-termines de la requête ou ajustez les relations entre les termes. Cela permettra à la requête de fonctionner correctement et de renvoyer les résultats attendus.

Novembre 25, 2024 à 1:45 pm #16440072

yvesR

Bonjour,

Merci pour votre retour et les explications détaillées.

J’ai effectué des tests en suivant vos recommandations : j’ai supprimé les sous-catégories, mais cela n’a pas résolu le problème.
Cependant, cela m’a donné des idées utiles pour tester d’autres possibilités.

La conclusion à laquelle je suis arrivé est la suivante : pour que le filtrage fonctionne correctement, il faut qu’au moins un article soit assigné à une sous-catégorie, sinon le reste des articles ne se filtre pas comme il faut. Cela pose un problème, car nous devrions ajouter une sous-catégorie même lorsque nous ne souhaitons pas en utiliser pour une langue particulière.

Auriez-vous une idée de pourquoi ce comportement se produit et comment faire en sorte que cela fonctionne sans nécessiter qu’un article soit assigné à une sous-catégorie ?

Merci d’avance pour votre aide.

Novembre 25, 2024 à 4:30 pm #16441280

Bruno Kos
Supporter

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

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

Comment cela fonctionne-t-il si vous désactivez WPML et que vous cochez la langue par défaut du site?

La conclusion à laquelle je suis arrivé est la suivante : pour que le filtrage fonctionne correctement, il faut qu’au moins un article soit assigné à une sous-catégorie, sinon le reste des articles ne se filtre pas comme il faut.

Car il est possible qu'il s'agisse d'un problème lié au plugin et non à WPML.