This is what ended up solving it (I’ll include the relevant parts)
$total = wp_count_posts()->publish;
$perpage = 10;
$curpage = isset( $_GET['pagenum'] ) ? intval($_GET['pagenum']) : 1;
global $post;
$args = array(
'post_type' => 'post',
'post_status' => 'publish',
'order' => 'DESC',
'orderby' => 'date',
'posts_per_page' => $perpage,
'offset' => $perpage*($curpage-1)
);
$pages = ceil($total/$perpage);
$dash_posts = get_posts( $args );
handles the query, then
$pagin = array();
for( $i = 1; $i <= $pages; $i++ ) {
$url = $_SERVER['REQUEST_URI'] . "&pagenum=$i";
$link = "<li><a href="https://wordpress.stackexchange.com/questions/37577/$url">$i</a></li>";
if ($curpage != $i) $link = str_replace( '~', '', $link );
$pagin[] = $link;
}
echo '<div id="blgs_post_loader"><ul>'. implode( '', $pagin ) .'</ul></div>';
took care of the pagination itself. For whatever reason, the standard “paged” variable doesn’t fire correctly on the admin side.