It looks like what I really need to do is add a custom “orderby” option. I managed to do this by:
Modifying line 2131 of wp-includes/query.php from this (using WP 3.0):
$allowed_keys = array('author', 'date', 'title', 'modified', 'menu_order', 'parent', 'ID', 'rand', 'comment_count');
to this:
$allowed_keys = array('author', 'date', 'title', 'modified', 'menu_order', 'parent', 'ID', 'rand', 'comment_count', 'custom_order');
and then inserting a new case on line 2148:
case 'custom_order':
$orderby = "$wpdb->posts.menu_order, post_date";
break;
But of course I don’t want to modify the core files. Does anybody out there know if it’s possible to add what I have illustrated without changing the core files directly?