Problème d’affichage d’un post particulier (Créer un compte)

  • Statut : non résolu
3 sujets de 1 à 3 (sur un total de 3)
  • Auteur
    Messages
  • #454677
    grosbouff
    Membre
    Initié WordPress
    13 contributions

    Bonjour,

    Ma configuration WP actuelle
    – Version de WordPress : 2.1
    – Plugins en place : gengo, get-a-post

    Problème(s) rencontré(s) :

    Hello, j’ai créé une fonction pour gengo qui récupère un post « traduit » à partir de l’ID d’un post donné.
    Par exemple, si le post_id#17 est une traduction du post_id#5;
    function gengoGetAPost(5) va me sortir la ligne du post_id 17 dans wp_posts.

    En théorie ça marche, voici la requête que ça donne dans phpmyadmin

    SELECT p . *
    FROM wp_posts AS p
    INNER JOIN wp_post2lang AS p2l ON p.ID = p2l.post_id
    INNER JOIN wp_post2lang AS p3l ON p3l.post_id = ‘5’
    WHERE p2l.translation_group = p3l.translation_group
    AND p2l.language_id = ‘2’ //2 = le language en cours dans la page
    LIMIT 1

    Mais étrangement, dans WordPress ça ne marche pas. Quel que soit le post_id envoyé dans la fonction, il ne m’affiche jamais celui là (mais semble répeter le dernier post de ma catégorie, ou alors c’est un hasard)

    function gengoGetAPost($post) {
    global $gengo, $wpdb;
    $language_ids = implode(‘,’, $gengo->language_preference_id);
    $query = « SELECT p.* FROM $wpdb->posts AS p INNER JOIN $gengo->post2lang_table AS p2l ON p.ID = p2l.post_id INNER JOIN $gengo->post2lang_table AS p3l ON p3l.post_id=’150′ WHERE p2l.translation_group=p3l.translation_group AND p2l.language_id=’2′ LIMIT 1 »;
    echo $query;
    return ($result = $wpdb->get_row($query)) ? $result : NULL;
    }

    Any idea ?

    Modération: Merci d’utiliser les balises [ code ] et [ /code ] (avec éventuellement l’attribut « =PHP » ou « =SQL » 😉 )

    #612142
    dlo
    Participant
    Maître WordPress
    1849 contributions

    J’ai peut-être mal vu mais il me semble que l’on utilise jamais le paramètre $post (l’ID de l’article ?) dans une clause WHERE de la requête SQL, donc pas étonnant que l’on récupère toujours le même résultat.

    Cordialement

    #612143
    Qwindoo
    Modérateur
    Maître WordPress
    2862 contributions

    Salut 🙂

    Et avec ce code-ci ? (j’ai juste intégré la variable $post dans la requête)

    get_row(‘SELECT Posts.* ‘.
    ‘FROM ‘.$wpdb->posts.’ Posts ‘.
    ‘INNER JOIN ‘.$gengo->post2lang_table.’ P2L ON Posts.ID = P2L.post_id ‘.
    ‘INNER JOIN ‘.$gengo->post2lang_table.’ P3L ON P3L.post_id = ‘.$post.’ ‘.
    ‘WHERE P2L.translation_group = P3L.translation_group ‘.
    ‘ AND P2L.language_id = 2 ‘.
    ‘LIMIT 1’);

    return ($result) ? $result : null;
    }
    ?>

    Cordialement,
    Thomas

3 sujets de 1 à 3 (sur un total de 3)
  • Vous devez être connecté pour répondre à ce sujet.