(Photo by Matt Mullenweg)
I gave this presentation yesterday at WordCamp Houston. It sounded like quite a few people enjoyed it.
If you attended it, I apologize for talking so fast. I haven’t given this one before and I was winging it, and when I’m unprepared I tend to talk fast.
If you have any questions about what I discussed, please leave a comment. Below is my presentation and some notes on each topic.
Frameworks
- Instead of re-inventing the wheel, see if there’s a framework you can build from.
- Thesis is great for the more standard, simpler sites. The first screenshot was built in one hour using Thesis.
- The next two screenshots were built in a day using Thesis. The design can be quite custom. About 75% of the work I do is with Thesis.
- For the more complicated projects, I typically use Genesis (ex: Tufts Roundtable). Areas where Thesis lacks and I build with Genesis:
- If you need to customize The Loop. Genesis gives you hooks into the loop, and you can also remove the loop with a single remove_action(). Update: The newest version of Thesis (released after this presentatation) now has a Custom Loop API.
- If you need to build custom templates for categories, taxonomies… anything that’s not a standard page. Thesis let’s you make custom page templates by setting a page to the “Custom Template”, but you can’t make real template pages like you can with a parent/child theme setup.
- If you want to use BuddyPress. Genesis works wonderfully with BuddyPress (this is one of the reasons we chose it for Tufts Roundtable).
- For very custom projects (ex: UTDallas) I’ll build a custom framework that the client can then use to customize. I built a parent theme for UTDallas with a bunch of available hooks. The client can then use it on many different sites, using a child theme to customize it. The client never has to touch the parent theme I build, which reduces the possibility of breaking it (if they add something to their child theme that breaks the site, they can just remove it). When I make updates or improvements to the parent theme, all the client’s changes are untouched.
Custom Post Types
- Custom Post Types allow you to separate content logically. If you have a blog and products, you shouldn’t have to put your products in the Posts area, you should create a separate post type for Products.
- The screenshot shows LogDogJobs, which uses a custom post type for the job postings.
Custom Taxonomies
- Custom taxonomies allow you to create new categorical structures.
- WordPress comes with two taxonomies: categories and tags. If your project contains other ways to logically categorize content, you might consider creating additional taxonomies.
- The example I highlighed (CultureMob – should be released in the next few weeks) breaks content into Categories (Art, Music, Food…) and Cities (Seattle, Houston, San Francisco…). This means that content can be aggregated by Category (Art), City (Seattle, and Category+City (Seattle Art).
Additional Sidebars
- Sidebars/Widgets are a wonderful, but often overused, feature. They are best used for content that is repeated often (not page-specific) and needs to be editable.
- The first example is my website. The homepage has three columns of content. The first column is the actual content of the page Home. The second column is a sidebar called Services, and the third column is a sidebar called Sidebar 2. On the inner pages, the sidebar displays Sidebar 1 followed by Sidebar 2. “My Story” appears in multiple places on the site, but should only exist in one place (Sidebar 2). If I had it in two different sidebars (Homepage and Inner Page sidebars) the content might not stay in sync.
- The second example is StuckInCustoms.com, which uses a custom sidebar for the button in the header. By making that code a sidebar, the client can easily change out the image and link without having to edit the theme’s code.
Multiple Content Areas
- I highlighted my technique for multiple content areas (I won’t describe it here because I’ve written about it already).
- I also noted in the talk that I’m planning to extend this code for a future project. The new version will take the content of the h4 (or whatever tag you use) and apply that as the class to the div. It would then use an h4 with the content “End” to define the endpoint for that div. This means the same technique can be used to create many different types of stylized divs in an easy-to-use way.
Elaine W Krause says
OMG! Those are some elegant looking sites.
Can you say just a wee bit about when you use the Woo themes? Wasn’t clear from your content, above, or in the slides (having no sound to accompany them).
Lovely, lovely work. And, I take it — for obvious reasons — you stayed pretty much out of the Thesis mud-throwing yesterday? I’m getting ready to revive my own blog & will probably stick with an old free theme of Pearson’s, Cutline. Easy to work with & ample for what I need … right now anyway.
Thanks again for coming over. People liked your stuff.
Bill Erickson says
I’ve never actually used WooThemes’ Canvas on a client project. I’ve been learning my way around it, but I’m not comfortable yet using it for a client project.
About a month ago there was the huge fight between Matt Mullenweg and Chris Pearson (of Thesis), due to Thesis not being GPL. While I love working with Thesis, that event pushed me to experiment with the other premium themes to diversify my offerings. Luckily one of my developers is an expert at Genesis so he helped me get up to speed on it. I’ve now built 2 client sites using Genesis, and plan to do more in the future when Thesis isn’t the best option.
From my experience, Genesis is more developer-friendly so it’s great for complex projects. Canvas is more client-friendly, in that there’s a ton of options in the WordPress admin for customizing the site, so it’s better for simpler sites where the client wants control over the design and structure.
Mark Guadalupe says
Great presentation and thanks for pointing out those themes and what exactly they are really good for, If I could suggest a post from you where a very informative comparison matrix of premium themes and/or versus free themes, and I will look forward on that! Cheers and Congratulations! ☺
Adam Baird says
Interesting to see your thoughts on using genesis for the custom templates and loop customizations. With the new Thesis loop API I’d be interested to hear your thoughts now. The genesis loop hooks offer some things the api doesn’t, and the api offers some things that the loop hooks don’t. Interesting stuff though.
Bill Erickson says
There’s a ton of great themes and theme frameworks out there, so I’m trying to focus on just three: Canvas, Thesis, and Genesis.
When building a site from a theme framework, the framework is a balance between user functionality (how easy it is for the end user to customize it without cod) and developer functionality (how easy is it for a developer to customize with code).
Canvas is at the far left (from my limited experience), in that it has a ton of options for the user but you can’t customize it too much as a developer. I recommend this for the most simple site where the client wants to be able to control everything.
Genesis is at the other end with very few options for the user in the WordPress admin area, but it is hugely flexible for the developer. I recommend this for more complex projects.
Thesis falls right in the middle. It has plenty of options from a user perspective and it can be fairly customized from a developer perspective.
Heath Waller says
Hi Bill,
Hi Bill,
I am training myself to become a WordPress specialist, and just wanted to thank you for sharing all of the insight you’ve gained from you own practice on your site.
I’m about to select my first paid theme framework to help speed up my development time, and your posts here have proven very enlightening when deciding between the 3 listed above. Though I’m 90% sure I’ll be starting with Canvas, it is great to see that each seems to excel in a specific niche, and that I can always learn another one or two down the road.
Just wanted to thank you!
Bill Erickson says
Thanks for the kind words, and I’m glad my posts have helped. Be sure to post what you learn from using Canvas. I haven’t had much time to explore it and would love to hear your thoughts on it.
Christopher Hooper says
I was at Wordcamp Houston. You did a real good job presenting this.
Bill Erickson says
Thanks!
lobsang says
I can’t see your presentation.
Bill Erickson says
Looks like the Prezi embed is broken. There’s now a button that takes you to the presentation.
FYI, this presentation is 9 years old. Still great content, but the examples are a bit dated 🙂