If you want something done right, you have to do it yourself! I hacked classes.php, and the handle_404 function right at the end, so that if a category or an author currently has no posts associated with it, it still gives me that page (author.php or category.php). The ammended code is:
if (is_author() || is_category()){
if ((!$wp_query->get_queried_object()) && !is_404() && !is_search() && ( $this->did_permalink || (!empty($_SERVER['QUERY_STRING']) && (false === strpos($_SERVER['REQUEST_URI'], '?'))) ) ) {
$wp_query->set_404();
status_header( 404 );
} elseif( is_404() != true ) {
status_header( 200 );
}
} else { // If not in an author or category page
if ( (0 == count($wp_query->posts)) && !is_404() && !is_search() && ( $this->did_permalink || (!empty($_SERVER['QUERY_STRING']) && (false === strpos($_SERVER['REQUEST_URI'], '?'))) ) ) {
$wp_query->set_404();
status_header( 404 );
} elseif( is_404() != true ) {
status_header( 200 );
}
}// End author/cat select
Just replace the single if statement with this double pack. Apologies for lack of indents, I can work out how to do that in this comment.
Also, can someone tell me where I should submit these fixes/upgrades/whatever so that they don't get buried?