Pagination shows same contents all pages

Here is my loop

        $my_query = new WP_Query(array(
                'cat' => -399,
                'posts_per_page' => 6,
                'offset' => 5,
                'paged' => (get_query_var('paged')) ? get_query_var('paged') : 1
        ));
        if ( $my_query->have_posts() ) : while ( $my_query->have_posts() ) : $my_query->the_post(); 
            $imgurl = wp_get_attachment_url( get_post_thumbnail_id($post->ID) );
            $finalurl = get_stylesheet_directory_uri(). "/functions/thumb.php?w=180&h=180&a=t&src="https://wordpress.stackexchange.com/questions/133754/.$imgurl;
            $date = get_the_date(); 
            $id = $post->ID;
        ?>
        .... loop contents ....

        <?php $finalurl ="";
        endwhile;
        else: ?>
        <p><?php _e('Sorry, no posts matched your criteria.'); ?></p>
        <?php endif; wp_reset_query();
        $id = ""; wp_pagenavi();

Pagination shows same content in all pages. I need your suggestion.

3 Answers
3

Try changing $my_query to $wp_query to see if that fixes the issue. I found that when you rename the query it messes with the pagination.

Also you should move the reset query after the pagination. Here’s a loop I’ve verified works with pagination:

$args = array(
    'posts_per_page' => 10,
    'post_type'      => 'post',
    'paged'          => get_query_var( 'paged' ),
);
$wp_query = new WP_Query( $args );
while ( $wp_query->have_posts() ) : $wp_query->the_post();
    get_template_part( 'templates/content', 'posts' );
endwhile;

/*
  PAGINATION
*/
if ( function_exists( 'page_navi' ) ) {
    ?>

    <div id="pagination">
        <?php page_navi(); ?>
    </div>
<?php }
wp_reset_query(); ?>

Leave a Comment