web-dev-qa-db-fra.com

WP_Query et problème de polylang

Dans le thème que je développe, j'ai un modèle montrant 5 messages en utilisant la boucle standard:

            <?php
          $my_query = new WP_Query('showposts=5');
          while ($my_query->have_posts()) : $my_query->the_post(); ?>

etc....

Il y a une page (Actualites) utilisant ce modèle. Maintenant, j'ai ajouté polylang et fourni une autre page (News) qui utilise le même modèle. Il n'y aura pas de traduction en anglais pour les entrées de blog, mais je voudrais tout de même que les lecteurs anglophones soient dirigés vers la page d'informations qui sera "la même" qu'Actualites.

Je suppose que la requête ci-dessus produit le même résultat, quelle que soit la page utilisant le modèle, mais en réalité la page française fonctionne bien, mais dans News, je ne vois aucun message. Des idées?

4
user2135738

OK - Je l’ai compris, les anciens billets déjà dans la base de données n’ont PAS de traduction anglaise et c’est le problème de ma boucle. Lorsque j'ajoute un nouveau message, j'ai la possibilité de fournir une traduction qui apparaît ensuite dans la page anglaise.

en parcourant la documentation, j'ai découvert que je pouvais aussi afficher la valeur par défaut lorsqu'il n'y avait pas de traduction, par exemple:

<?php query_posts(array('post_type' => 'post','lang' => 'fr')); // force querying the French posts ?>
if (have_posts()) : ?>
    <?php while (have_posts()) : the_post(); ?>
    <?php global $post;
    if($post_id = pll_get_post($post->ID, pll_current_language())) { // get translated post (in current language) if exists
        $post = get_post($post_id);
        setup_postdata($post);
    }?>

... fais ce que tu veux dans ta boucle ...

6
user2135738