I’m currently working on a WordPress Theme framework (vivaWP) to make a lot of the more complex theme functionality easier to use.
Unlike existing ‘frameworks’ for WordPress, this doesn’t dictate what your theme should look like. It’s a framework to handle the more complex aspects of theming which you include in most templates.
The framework currently includes:
See this screencast for details on partials.
Post preview images
It can become very complex, very quickly when trying to include a ‘preview’ image. viva provides one simple function which handles all the hard stuff for you.
By default the function will return a resized version of the first image from the post. You can easily over-ride this image when you enable ‘Custom Write Panels’. Or, of course, you can choose not to display this image on certain posts.
Custom Write Panels
Instead of the confusing ‘Custom Fields’, easily create your own panels on the ‘Write/Edit Post’ page in the Dashboard. These provide a ‘front-end’ for your custom fields!
Theme Options Page
If you’re creating a theme any more complex than a blog, you will likely want to provide buyers a few to customise some aspects of your theme. viva makes it easy to create an options page for your theme, and just as easy if you want to display a drop-down box to choose a page/category from!
Replace all the code in your layouts which provide the pagination links with a simple
pagination()call. The function will use the ‘wp-pagenavi’ plugin if installed; otherwise it will fall-back to the default WordPress links.
Ok, not exactly something complex, but it is something you include on every theme you create. With viva, it’s all built-in!
Support WordPress versions 2.6 and below, but still make use of 2.7’s pagination and threading abilities. Easily provide a separate comments layout for each version.
Each of these are quickly enabled/disabled depending on what you need for your theme.
Once the framework is complete, you just drop the ‘viva’ folder into your theme’s directory and enter
require_once 'viva/system.php'; into functions.php
Any suggestions for extra functionality? Feedback?
PS. I guess you could call this a public version of the ‘Woo Framework’ created by the WooThemes team which they claim massively speeds up the process of coding their themes.
This sounds very interesting…but is there any catch? Will you be offering this framework for free, with no strings attached?
If you really go through with it and people start using it, it will be very hard to match up and improve the features you already included…soon enough most of the wordpress themes here might have approximately the same admin panels.
Wow, that is awesome. Especially the custom write panels. I’m not PHP savvy at all so this will certainly be useful for me.
I have always thought that snippet managing would be great feature in Wordpress. You would be able to create and manage snippets of text or code in an interface in the back-end. An admin would be able to lock snippets so they only can be edited but not deleted (to prevent errors if a snippet is called from a template) by editors. You would also be able to insert snippets directly in posts using shortcodes or even better, choose from a dropdown in the WYSIWYG .
I’ve had thoughts of making a plugin of this idea if I ever learned PHP for real. But I’m not a developer at heart so that probably won’t happen Maybe not something suited for your framework (would probably do better as a plugin) but I thought I’d share
It will be released under the GPL license, so users can do whatever they like with it. In fact I encourage people to use it in their ThemeForest themes if they want
No attribution necessary, although would be nice lol
A lot of themes here are already using the code from my ‘Theme Options’ tutorial on the ThemeForest Blog, so hopefully those who use it will benefit more from this. Lots new features and much cleaner code.
I’ve basically extracted the framework from a new theme I’m working on, as I realised I was repeating a lot of this code, in one form or another, in each theme I create.