
How complex, or complicated, does a theme need to be to offer all the possible solutions that you want? I think it is possible to do it very very simply, with only one template page.
There are three widget based plugins which I think provide functionality so powerful that it is possible to create one index.php file with dynamic sidebars in key positions and to use widgets for everything else. Here are those plugins:
This is one of mine, and by far the simplest and least impressive of the three, but, it provides an incredibly simple way for theme builders or individuals to create their own widgets out of snippets of code.
You can find out more about Fun with theme widgets here
This plugin by Justin Tadlock is most excellent. It allows you to include a list of posts by selecting the selection criteria. I see no reason why this shouldn’t be used instead of hard coding the page lists into the theme itself. If it supports paging and templates then even better.
You can read more about Justin Tadlock’s Query post widget plugin here.
Kaspars widget context plugin adds the option to any widget to choose when it is displayed, i.e. home page, single post pages, when the URL contains certain characters etc. This is the killer plugin as, combined with the two above, it is no longer necessary to create individual post pages. Simply decide which widgets should go where.
You can read more about Kaspar’s Widget Context plugin here.
It isn’t a plugin, but any theme using these combinations of plugins and widgets really needs the option to preset some widgets. Ptah Dunbar recently wrote a post explaining how to preset widgets from within a theme so this is a post well worth checking out.
Are these widgets the next step toward the ultimate WordPress theme system? I don’t know; what do you think?
Thank you for the post. The idea tickles the imagination. It's do-able in own theme playground but could be stressful for sites to be turned over to clients. Imagine Tools > Upgrade to WP 2.8 or later WP 3.0 and widgets not compatible – egads, calls from irate clients :-) Still, Thx again.
I've been considering building this very theme. When I created the Query Posts widget, it was the first step toward this goal. Basically, it was an experiment to see if it was possible to really create a completely widgetized theme.
A very basic structure, maybe some extra code to handle the header stuff, code to handle pagination, a few extra widgets, and the addition of the WP hooks would be all that's needed to make one of the most customizable WP themes around.
This is an interesting approach to be sure. I actually often tend toward the other side, going ahead and creating a custom template page for everything. I feel this makes the code more readable, but I might try something more like this next time I develop a theme. It's a cool idea.