The reason that there isn’t a hide the title feature in core is that the title isn’t a pre-defined block of HTML, like featured images are. it’s a call to get raw text that the theme wraps in tags and styling. As such, we can’t just blank
the_title(), as it will produce empty tags, and will hide the title in other places where it should exist.
I do not believe this should be done without introducing new functions to the theme, as the existing solutions are all very hacky, in how they interact with arbitrary themes.
One solution would be to add a setting to the admin panel that just controls a function called
has_title(), but I think we can do better than that.
A related problem that is frequently seen with titles, is the lack of proper header tags. On archive pages and on the home page, the title should usually be an H2, whereas on single pages, it should be an H1, if it is the primary post on the page. Perhaps we could add a function for
the_headline() that outputs the title with the appropriate tag (of course allowing the theme to override the tag where they wish). This could be combined with another new function
the_masthead() that would output the site name/logo of the site in a standardized way that accounts for all the various header tag needs (on single pages, the site name should be in a span… on the homepage it should be the H1).
These functions could be used to both enable themes to support hiding the title out of box, and also to try to bring better standards into how themes semantically handle headers.
~ posted by Greg Schoppe