web-dev-qa-db-fra.com

Pagination dans un Shortcode. Get_next_posts_link ne fonctionne pas mais get_previous_posts_link fonctionne correctement juste à côté

J'essaie de générer une archive de type publication personnalisée à l'aide d'un shortcode. Tout fonctionne correctement sauf la partie get_next_posts_link. Ce qui est étrange, c’est que c’est juste à côté d’un get_previous_posts_link qui fonctionne parfaitement.

Voici la fonction

function output_tips() {
global $paged;
$paged = get_query_var('paged') ? get_query_var('paged') : 1;
$args = array( 'post_type' => 'ht_tips', 'posts_per_page' => 1, 'paged' => $paged, 'caller_get_posts' => 1, 'orderby' => 'date', 'order' => 'DESC' );
$loop = new WP_Query( $args );

$inner = '';

while ( $loop->have_posts() ): $loop->the_post(); global $post;

    $title = '<h3>'. get_the_title() .'</h3>';

    $content = get_the_content();

    $output = '<div class="testimonial">' . $title . $content . '</div>';

    $inner .= $output;

endwhile; 

$prev = '<div class="nav-previous">' . get_previous_posts_link( __( '<span class="meta-nav">&larr;</span> Previous' ) ) . '</div>';
$next = '<div class="nav-next">' . get_next_posts_link( __( 'Next <span class="meta-nav">&rarr;</span>' ) ) . '</div>';

wp_reset_postdata();

$open = '<div class="testimonials">';
$close = '</div>';
$return = $open . $inner . $prev . $next . $close;

return $return;
}

Une idée pourquoi cela pourrait être?

2
GusRuss89

C'est une vieille question, mais j'avais besoin de la réponse à celle-ci aussi. Voici la solution prise directement à partir du WP codex ...

$prev = '<div class="nav-previous">' . get_next_posts_link( __( '<span class="meta-nav">&larr;</span> Previous' ), $loop->max_num_pages );

Vous devez ajouter le paramètremax_num_pagesde la requête à votre sortie, qui fonctionnera normalement dans le shortcode.

1
corradomatt