I've been investigating... here's what I've found:
The div.tablenav_pages is written out on lines 388-400 of /wp-admin/edit.php:
<?php if ( $page_links ) { ?>
<div class="tablenav-pages"><?php
$count_posts = $post_type_object->hierarchical ? $wp_query->post_count : $wp_query->found_posts;
$page_links_text = sprintf( '<span class="displaying-num">' . __( 'Displaying %s–%s of %s' ) . '</span>%s',
number_format_i18n( ( $pagenum - 1 ) * $per_page + 1 ),
number_format_i18n( min( $pagenum * $per_page, $count_posts ) ),
number_format_i18n( $count_posts ),
$page_links
);
echo $page_links_text;
?></div>
<?php
}
$page_links is defined in lines 311-318:
$page_links = paginate_links( array(
'base' => add_query_arg( 'paged', '%#%' ),
'format' => '',
'prev_text' => __('«'),
'next_text' => __('»'),
'total' => $num_pages,
'current' => $pagenum
));
I added the following after 318 to see what was in $page_links:
echo "<!-- ";
print_r($page_links);
echo " -->";
The output, as expected, was a blank array.
I changed $page_links to:
$page_links = paginate_links();
to see if the default values for paginate_links (line 1943 of /wp-includes/general-template.php) worked.
Again, a blank array.
So paginate_links is returning a blank array - but I can't figure out why that would be.
Anyone?