A couple solutions to this. I’ll let you decide which works best for you.
First, a plugin:
https://mattread.com/projects/wp-plugins/custom-query-string-plugin
With it you can set home (or any query type) to display the last day’s worth of posts in ASCending order.
Second, a somewhat geeky use of query_posts(). You’d insert this into your theme template before The Loop:
<?php
$query = $wpdb->get_var("SELECT post_date FROM $wpdb->posts WHERE post_status = 'publish' ORDER BY post_date DESC LIMIT 1");
$query = str_replace('-', '', substr($query,0,10));
query_posts('m=' . $query . '&showposts=-1&order=ASC');
$wp_query->is_archive = false; $wp_query->is_home = true;
?>
Here’s what’s going on in it: $query is the value of a sql query which collects the post_date for the last *published* post. Through a bit of PHP magic we convert post_date (ex: 2006-02-01 12:00:01
) to the format needed for the ‘m’ (archive) query (ex: 20060201
). The query_posts() arguments should be self-explanatory; -1
for ‘showposts’ tells WP to display all post in the query select. Finally, passing ‘m’ through query_posts() can bobble the query type of the page we’re on, so the $wp_query statements make sure these are what’s expected.
The plugin method is definitely easier. :)