I have trouble with [cde] showing 126 pages (for 126 posts -- that part is nearly correct), but rather than breaking it lower by 10 (expecting 13 pages) it shows all posts in each and every page. Basically change PageNavi it shows exactly the same 5.

Relevant codepart:

'numberposts' => 5

I can not appear to determine wrong.

Update (Full Code):

<?php wp_pagenavi(); ?>
<?php
$args = array( 'category' => 7, 'numberposts' => -1);
$allpost = get_posts( $args );
    foreach($allpost as $post) : setup_postdata($post); ?>
    <p class="datelist"><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></p>
<?php endforeach; ?>
<?php wp_pagenavi(); ?>

Working code:

<?php
get_header();
?>
<div id="container">
    <div id="content" role="main">
        <h1>something</h1>
        <?php
        $args = array( 'category' => 7, 'numberposts' => -1);
        $allpost = get_posts( $args );
        foreach($allpost as $post) : setup_postdata($post); ?>
        <p class="datelist"><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></p>
        <?php endforeach; ?>
</div>
</div>
<?php get_footer(); ?>

If you use <?php get_header(); ?> <div id="container"> <div id="content" role="main"> <h1>something</h1> <?php global $paged; if (get_query_var( 'paged' )) $my_page = get_query_var( 'paged' ); else { if( get_query_var( 'page' ) ) $my_page = get_query_var( 'page' ); else $my_page = 1; set_query_var( 'paged', $my_page ); $paged = $my_page; } $args = array( 'cat=7', 'paged' => $my_page, 'posts_per_page' => 10 ); $my_query = new WP_Query( $args ); while ($my_query->have_posts()) : $my_query->the_post();?> <p class="datelist"><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></p> <?php endwhile; wp_pagenavi( array( 'query' => $my_query ) ); wp_reset_query(); ?> </div> </div> <?php get_footer(); ?> you are carrying out a query because of your own, and never while using default query vars produced by WordPress. PageNavi wordpress plugin will not work as they are on custom loops.

As pointed by rbaier4, make use of the get_posts variable. Be mindful not not mix the default loop together with your custom stuff, and also to totally reset the variables after you are done.

paged

Hope it will help.