I just figured out why WP developers expect you to create a separate 404.php page to control the output of that page. (and the silence about any attempt to do it otherwise)
It's basically because they provided no good fallback (or I haven't found it?) to control the second query: the fallback query run if nothing is returned by the initial query.
By directing us to create another document, WITHOUT A LOOP in it, you'd never notice the loop is still returning all the blog posts. That is the only reason (or worse) for which creating a whole new template could be seen easier than a (apparently simpler) filter to the_post, to show a specific text and title if nothing found. No new template needed.
Yes, I can modify the main query but it makes no sense since all the posts will be retrieved anyway once nothing is found in the initial loop.
Yes, I can modify the data before the loop, but ANY post retrieved by the traditional means would revert the 404 to a 301 (with a redirect)
Does anyone know how to prevent/change the fallback query?
I specifically need the loop to return null or 1 page, not many. (Changing posts_per_page is useless because it only affects the initial loop, but not the one WP runs once the first returns nothing)
Thanks.