web-dev-qa-db-fra.com

La pagination donne une page supplémentaire sans résultat

J'essaie d'implémenter la pagination sur une page de catégorie. La pagination fonctionne, mais pour une raison quelconque, le plug-in de pagination que j'utilise note une page supplémentaire de résultats, alors que cette page est en fait vide.

Je suis presque sûr que cela n'a rien à voir avec le plugin de pagination car j'ai vu des rapports de personnes ayant le même problème avec next_posts_link et previous_posts_link.

Quelqu'un a une idée de comment cela pourrait arriver?

Boucle:

<?php       
global $myOffset;
$myOffset = 11;
$temp = $wp_query;
$wp_query= null;
$wp_query = new WP_Query();
$wp_query->query('offset='.$myOffset.'&cat=6&posts_per_page=12'.'&paged='.$paged);
?>

<?php while ($wp_query->have_posts()) : $wp_query->the_post(); ?>

STUFF

<?php endwhile; ?>

<?php if(function_exists('wp_paginate')) {
   // get yo paginate on
   wp_paginate();
} ?>

Edit: J'utilise également ce plugin functions.php pour activer le paramètre offset dans un wp_query personnalisé:

function my_post_limit($limit) {
    global $paged, $myOffset;
    if (empty($paged)) {
            $paged = 1;
    }
    $postperpage = intval(get_option('posts_per_page'));
    $pgstrt = ((intval($paged) -1) * $postperpage) + $myOffset . ', ';
    $limit = 'LIMIT '.$pgstrt.$postperpage;
    return $limit;
} //end function my_post_limit
1
Squrler

Je ne suis pas sûr, mais je suppose que c'est parce que vous utilisez la pagination et offset en même temps. La pagination peut être calculée pour l'ensemble de l'ensemble, mais vous réduisez la taille de l'ensemble avec un décalage, de sorte que le nombre de pages devient surestimé.

3
Rarst

Vous pouvez essayer d'utiliser la fonction plus native get_adjacent_posts() pour voir si le problème est la fonction next_posts_link(). Pour plus d’informations, j’ai écrit un plugin éducatif qui est bien documenté/commenté pour vous guider tout au long du processus.

1
kaiser