I'm searching for the best solution to create custom layouts for blog pages in WordPress.
Where you would normally select a custom page template from the Template metabox in admin to change the page layout, this does not work for static blog pages.
By default, WordPress template hierarchy is looking for home.php and then index.php to display, it does not check for custom page templates at all. View the Template Hierarchy here. WordPress codex also notes this about Blog pages:
Do not use a custom Page template for this page. The template files home.php or index.php will be used to generate this page in the Theme.
I personally find this very odd. If there is one page I would like to have different layouts available it's the blog listing.
My current and only solution is to create a new metabox called something like "Blog Layouts". My home.php then loads a custom template part based on what value is set by the metabox. Although I'm sure this will work, It feels kind of hacky knowing that WordPress provides it's own metabox for setting page templates.
If anyone has better suggestions, I'm really happy to read them.