web-dev-qa-db-fra.com

Postes suivants/précédents sur la même page

Bonjour les utilisateurs de WordPress,

Je suis coincé avec un problème pour construire mon site web wordpress et je ne peux pas comprendre quoi faire à ce sujet.

Actuellement, je présente 2 articles de la catégorie 'Nouvelles' sur la page 'Nouvelles'. Au bas de cette page, je souhaite un bouton Précédent/Suivant qui affiche les 2 messages suivants ou précédents de la même catégorie.

Alors je cherchais comment je pouvais faire ça. J'ai donc trouvé ce code:

previous_posts_link('Newer Entries »')
next_posts_link('« Older Entries');

Cela affiche un lien comme je m'y attendais. Mais les deux liens ne fonctionnent pas (rechargement de page, mais la même entrée est affichée).

J'ai aussi trouvé ceci dans ce codex :

posts_nav_link('∞','Go Forward In Time','Go Back in Time');

Également à 'Setting'> 'Reading', j'avais réglé le nombre maximum de messages à 2.

Je ne sais pas comment je peux gérer ça. Est-il possible d'afficher les 2 prochains messages (ou "X") de la même catégorie lorsqu'un bouton "Suivant" ou "Précédent" est enfoncé?

Merci!

Edit: Voici comment je reçois les posts:

$args_news= array(
        'cat' => 1,
        'posts_per_page' => 2,
        'orderby' => 'post_date',
        'order' => 'DESC'
    );

    query_posts( $args_news );

    if ( have_posts() ) :
        while ( have_posts() ) :
            the_post();

          the_title();
          the_content();

          endwhile;
    endif;

Mais toujours aucune idée de comment je peux faire des pages de ces posts. Actuellement, il affiche les 2 derniers messages.

1
Ronny Rook

Passez Paged dans le tableau de paramètres de query_posts

Vous devez définir get_query_var( 'paged' ); si vous souhaitez que votre requête fonctionne avec la pagination.

$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
$args_news= array(
        'cat' => 1,
        'posts_per_page' => 2,
        'orderby' => 'post_date',
        'order' => 'DESC',
        'numberposts' => -1,
        'paged' => $paged,
    );

    query_posts( $args_news );
if ( have_posts() ) :
        while ( have_posts() ) :
            the_post();

          the_title();
          the_content();

          endwhile;
    endif;

pour plus d'informations: https://codex.wordpress.org/Pagination

3
dipali

Vous devez tous les deux utiliser la requête paged var pour la boucle et le max_num_pages var pour les liens:

$news_args = array(
    'cat' => 1,
    'paged' => get_query_var('paged'),
    'posts_per_page' => 1,
    'orderby' => 'post_date',
    'order' => 'DESC',
);

$news_query = new WP_Query($news_args);

if ($news_query->have_posts()) :

    while ($news_query->have_posts()) : $news_query->the_post();
        the_title();
        the_content();
    endwhile;

    previous_posts_link('prev', $news_query->max_num_pages);
    echo ' — ';
    next_posts_link('next', $news_query->max_num_pages);

endif;
1
tfrommen