Genesis Framework, Not Too Shabby

So, I’ve posted elsewhere that I’m not a huge fan of theme frameworks. The short version: I’m not sure we need anymore hooks and filters than WordPress Core already provides and my time is better spent learning those hooks than learning some trendy theme hooks that merely obscur or repackage those core WP hooks.

However, then I contradicted myself and went a redesigned my website using the Genesis Framework. So I feel obligated to explain. I chose the Genesis Framework because I like StudioPress. I first used a Brian Gardner theme back in 2008 when it was still “Revolution”. I’ve always found his code clean, efficient and easy to work with. Indeed, I found those traits reflected in Genesis as well.

Moreover, modifying Genesis was (for the most part) much more straight forward than other frameworks like Thesis. For instance, with Genesis you can still use custom template pages without putting all the code into a function. I’m old school so I like that. I also find the core Genesis libraries are intuitively organized so that if you want to know what hooks are involved in a particular piece of the header,  it’s relatively easy to find ‘/lib/structure/header.php’.

So, while in general, I still don’t dig on theme frameworks, Genesis is definitely a good one. Cheers, Brian.

WordPress Theme Frameworks: Who needs ’em!

The buzz word in WordPress circles these days is “framework”. What the hell does that mean? Isn’t WordPress a framework? The official definition offered in the WordPress Codex is “a theme that is designed to be a flexible foundation that can serve as a parent theme for building child themes.” But this doesn’t quite give us enough information.

Taking only the simple definition under consideration, WordPress users are likely to get the impression that, all things being equal, you should use a framework. After all, who wouldn’t want the added benefit and “flexibility” of being able to have “child” themes. Sounds cool.

But once you unpack a framework theme and start futzing with it, you quickly realize all is not perfect in the land of “frameworks”. So here’s my stab at a more useful definition. A WordPress Theme Framework is a theme that has additional code built into it making selected tasks easier for theme developers to manage. The emphasis on developers is mine and is very important.

Over the last several months I’ve built sites using several different frameworks and found that there is little advantage consistent across all frameworks, though each framework has specific advantages. The only consistency is that to really benefit from frameworks you need to have a deeper understanding of WordPress, its syntax, functions, plugins, etc.

If all you want to do is customize a theme, frameworks are likely to drive you crazy.

In Theory

In theory, frameworks are a very powerful thing. The idea is that you can take certain standard needs of theme developers and abstract them into new functions that allow the theme developer to execute customizations without messing with the theme core. With many theme frameworks, if you know what you’re doing, you can perform most theme modifications by editing only the style.css and the function.php files.

By way of an example, the Thematic Theme Framework has a hook called thematic_above_indexloop();. If I wanted to add a feature ad banner above the index loop of a regular theme, I would have to go into the the index.php, find the loop, and ad the code. But in the framework I simply have to go to the function.php file and add the following:

function feature_ad_banner() {
echo 'my feature ad banner';
}
add_action('thematic_above_indexloop','feature_ad_banner');

This code just tells the theme to pull in my custom function when it triggers this action. This gives me a ton of power as a developer because I can easily build an awesome site without worrying about building the “guts” of the theme. Or, to put it simply, I can focus on the cool stuff while ignoring the mundane details.

It’s all about the HOOKS

The drawback is that each theme framework has its own peculiarities and learning the appropriate hooks and filters can take time. If you’re a developer, this time is justified because it saves time on future projects. But if you just understand the basics of WordPress themes and are simply trying to customize one for your own use …especially if you aren’t all that comfortable with PHP … this extra level of abstraction can be a royal pain in your ass. If you’ve modified a loop before, you’ll find modifying a loop in a framework isn’t nearly as simple as you remembered. You have to create your own function and then track down the right hook to apply it to. A mod that used to take you 15 minutes, now takes you an hour.

Again, there are rewards to learning a framework, but make sure you understand the time investment required and how that squares with the benefits you expect to receive in return.

In short, WordPress Theme Frameworks are great for those serious about development. But hobbyist might want stick with an old fashioned WordPress Themes. In future articles I will look a few different frameworks and when you mind be inclined to use them.

Endorsement: Carrington CMS Framework

When I first encountered the Carrington Theme CMS Framework for WordPress I was underwhelmed. First, I didn’t get it. Why would I want to learn a new set of concepts and functions to help me customize WordPress? It is the same reason I’ve always resisted learning third-party design programs like Dreamweaver. Wouldn’t my time be better spent learning the programming language itself?

Moreover, I was confused because Carrington Theme didn’t seem to make it any easier to turn WordPress into a CMS! It made it harder because there was yet another layer of abstraction to worry about.

But my negative assessment was born of ignorance more than experience. It wasn’t until I was knee-deep into my first CMS project managing more than 10,000 pages of content with at least 10 different “content types” that I began to remember the Carrington Framework … and then click! it all made sense.

Carrington is a framework built to help developers manage sites with hundreds of customizations. I built my CMS site without Carrington and my sidebar.php file looks like Frankenstein on acid: include, conditional, biconditional, include, exclude, uhg. Sometimes when I need to fix a particular customization it takes me ten minutes to figure out which include file it’s in.

The whole point of Carrington is to make 90% of that conditional code unnecessary because so much of it is predictable. If you’re building a CMS, you can pretty much guarantee that you want change the sidebar depending on the context of the page, right? Carrington just makes it simpler to do so.

Perhaps the confusion over Carrington is that it markets itself as a “CMS Framework”. But in fact, it’s a THEME framework for CMS builders. If you are using Carrington, you will still need to know how to use WordPress custom fields and write panels etc. But the theming will be 100 times easier.

Will your project follow the “Hype Cycle?”

TechCrunch published this really interesting graph yesterday that comes from Gartner. The graph details the life of a new technology. The initial excitement and buzz, the inevitable disappointment, then the slow build.

Does a similar cycle apply to new web projects? Perhaps we have to give the phases different names, but in a broad sense the trajectory applies, both internally and externally.

From an internal perspective, it’s very easy to get caught in your own hype about a new web site. This new blog is going to be the one that puts you on the map. This new wiki is going to revolutionize the way we do business. We all have visions of that instalanch (define: instant avalanch) making our site a household name on the first day.

But when it doesn’t come, we get discouraged, our interested drops, and sometimes we even abandon the project. But sticking with it pays dividends. Slowly, over time the site starts achieving some modest successes. After six months or even a year, perhaps the project begins to take on a life of its own.

The peak, the crash, the long-slog; this is the emotional rollercoaster we experience in web development.The key is keeping yourself grounded and understanding what you want. If you are just chasing the instalanch, then maybe you should give up on a project after three months. But if you believe in your concept and you are committed, you will see slow progress. And if your product is good and you are patient, you will be successful.

The curve applies from an external perspective as well. Often groups will do a great media launch for a site, get an initial burst of traffic, but then see their stats plummet back to earth because they had no plan for long term promotion. No matter how big your initial buzz is, you must have a long-term plan for driving traffic through search-engines, email marketing, and organic links. Without it, the traffic for a site simply can’t be sustained.

Theme Update: OnStage Theme for Actors v1.1.0

So, my OnStage theme has only been out for a couple weeks and already I’m releasing a new version. What gives? Well it occurred to me that a few tweeks were needed. For one, the blog had no side bar which (a) prevented users from browsing archives and (b) eliminated the natural search juice that a sidebar provides. Also, I noticed that some users were not using the proper sized pictures for their frontpage gallery. This resulted in the smaller pictures aligning left and making the whole site look a little off kilter. I’ve now centered the home gallery so that, no matter what size image is used, the images will look nice.

The new version can be downloaded here.

OnStage Theme for Actors

So I am finally ready to release “On Stage,” a theme designed specifically for actors. Aesthetically, I wanted a very simple, yet elegant design that would allow the actor’s headshots to take the focus. I owe Brian Gardner some credit for this theme because the code is based on his Photopress design. This is my first publically released theme, so be gentle. I’ve tried to cross-check this among all the relevant browsers, but haven’t exhaustively done so. Please report any compatibility issue below.

Download Theme | Demo Theme

The theme is free to download, but I am happy to set it up for you for $200. If you are interested, drop me an email at mike@www.mikevanwinkle.com or call 708.289.3136.

Installation

In order to achieve the functionality necessary for a top-notch actor website, it was necessary to incorporate several awesome, and freely available, plugins. Since I did not design these plugins I cannot provide support for them. Also, it would be a good idea to check for more recent versions of these plugins before installing this them. However, I have included all necessary plugins in the theme download. Beware, updated plugins may affect the functionality of the theme.

Step 1: Download the theme pack and unzip the file. The file contains two folders, the theme folder (“onstage”) and the plugins folder (“plugins”)

Step 2: Upload the theme folder to your themes directory (wp-content/themes/). Then upload the CONTENTS of the plugins folder to your plugins directory (note: do not upload the folder itself, only the contents).

Step 3: Activate theme by going to your Dashboard>Designs menu within the wordpress administration interface.

Step 4: Activate the included plugins by going to your Plugins menu within the wordpress administration interface. Activate the “NextGEN Gallery,” “NextGEN Gallery Widget,” “Contact Form,” and “Limit Posts” plugins.

Step 5: You should now see a “Gallery” tab on your Dashboard menu. Click this tab and then click “Add Gallery.” Name your new gallery “Frontpage” so that it will be clear which gallery controls the front page.

Step 6: Upload the images you want shown on the front page into this gallery. You should resize your images to 690 x 400 (width x height)

Step 7: Go to your widgets menu (Dashboard>Designs>Widgets). Make sure the menu in the right-hand column is set to “Sidebar 1.” Then drag and drop the NextGEN Gallery Widget from the left-hand column onto the right-hand column. Click “edit” on the widget bar. !Leave the gallery title blank! Select the “Frontpage” gallery from the drop down menu and set the dimensions to match those of the images you uploaded (690 x 400). Click save changes.

Usage

The steps above describe how to use the headshot gallery on the frontpage. The front page will also display the latest post from the “Featured” category.

If you would like to use the blog function, create a new page and under the option for “Page Template” select “Blog.”

One note on using the gallery. By default the NextGEN Gallery crops photos into uniform square thumbnails. This means profile shots turn out as cropped mid-riff photos. You will need to change the default thumbnail settings if you do not want the system to crop profile photos. You can do this by going to Gallery>Options>Thumbnails and unchecking the box that says “Ignore the aspect ratio, no portrait thumbnails.” Also on this options page, I recommend changing the max dimensions of the thumnails to 150 x 150

Optional: Included in the theme pack are plugins for a secure contact form and resume builder. These are optional. I recommend using the contact form plugin, but the resume plugin may not fit the requires of a typical performance resume and so therefore may not be advised.

Coming soon: “OnStage” a Worpress Theme for Actors

So I’ve been busy all day working on my first ever WordPress Theme. At least the first one I’ve essentially designed from scratch. I’m calling it “OnStage” and it is specifically designed for use by actors. It isn’t ready for download yet because the setup instructions are going to be a little detailed. But you can preview the theme here. Feedback is definitely welcome.