THOUGHTFUL THEMINGA talk on design, and efficient
theme development for WordPress
Who am I?
Just a guy Started on blogger, adopted b2, moved
to WP Built a successful side-business doing
custom design http://onefinejay.com
How did this talk start?
Talking with a friend with common interests about aspects of design
Started as a 5-min presentation at a local WP-related meetup
Discussed conditional logic for faster theme development
This talk is more about design than anything else.
Today’s Questions
What is design? What is good design? What are the areas of design in
WordPress? What is a theme? Why roll your own theme? How can you make your theme
development experience better? When should you use what?
What is design?
Design is a tool; it is a means to an end Design is thoughtful and thorough
development of a solution to a problem We experience design everywhere Poor design leads to bad experiences Great design can be invisible. “It just
works.”
Poor design
You feel its effects, immediately or otherwise
Consequences can lead to lost business or worse, lost lives
Inability to forecast unintended possibilities
Inability to step into the shoes of target market
Lack of passion due to undercutting oneself
Quality Triangle: “Pick two.”
Product dev’t: cheap, fast, high quality Spouse: intelligent, good looking, sane Design is what you do when you refuse to
accept that you can only pick two.
What is “good design?”
Industrial design tangible area of design Dieter Rams and the 10 principles of
good design Studied architecture and carpentry Worked in architecture then for Braun as chief
of design Weniger, aber besser. Less, but better.
Jonathan Ive Inspired by Rams VP of design at Apple, Inc.
Rams & Ive, side by side
Gizmodo, et.al. compared products
Rams’ Ten Principles of Good Design
Innovative Makes a product useful Aesthetic Makes a product understandable Unobtrusive Honest Long-lasting Thorough down to the last detail Environmentally friendly As little design as possible
Areas of Design in WP
Database design Changes with every major release Drive for efficiency
Admin UI design Well-designed plugin user interfaces are
consistent with WP’s own admin UI Theme design/development
Most common area High visibility Most competitive marketplace
What makes a theme?
Short history of WP themes Style.css + my-hacks.php Theme directories
Index.php Style.css
Rise of premium, freemium, or do-it-all frameworks
Entire applications built on top of WordPress
Great expectations
The highly competitive market of themes has raised expectations
Clients look for deliverables that are built into themes or require plugins (paid/freemium)
Frameworks make for rapid deployment IF you know how
Are drop-in themes crutches?
Matter of opinion Subject of a SxSW Panel, in terms of
WordPress itself Depends on whether you treat it that way
Do you find yourself shoehorning your work into a theme framework?
Do you find yourself repeating a wireframe for rapid deployment?
That’s okay. I’m guilty of that, too, but remember: you may not grow as a designer if you keep doing this.
Why roll your own theme?
You gain an understanding of the medium You know it like the back of your hand No drop-in, freemium, premium,
superdupermegacomplete framework can predict a need you might encounter
Sometimes you need a scalpel and all you have is a Swiss knife without one, or worse, a chainsaw.
The potential for discovery has not been exhausted.
When not to roll a theme
Client won’t pay the right price for custom work
Don’t waste your time with unpaid work Needs are met with a drop-in theme “Just want to write.” Twenty-Ten might
just work for this, just as Default/Kubrick worked as well
Persistence of design
Some blogs have never changed design since 2003, yet they have plenty of traffic
A known and familiar interface for readers
Primitive by today’s standards “Still works for them” The goal is to be read, and that goal is
met
Balancing futureproofing and creativity
A growing trend is to produce child themes Applies to all paid frameworks Encouraged for the new theme
Majority of themes between then and now are modified versions of Kubrick/Default Evidenced in conditional output when viewing
archive and single pages Material benefit: you get all the goodies
and features while keeping your customizations after a core update
Drawbacks to child-theming
Child themes tend to be palette and image swaps
Same song, different day Working with someone else’s code,
keeping up with a growing list of CSS classes/IDs, and custom functions (Yes, I understand you have to start from
somewhere)
Having a good time theming
Learn WordPress like the back of your hand Understand the core functions and play, play,
play! If you learn something when playing during
“idle time,” you did not waste any of that time at all
Read up on resources that discuss principles of design (color, proportion, line, space, etc)
Follow a 101-level theme development tutorial
Choose a framework, or make your own You don’t have to share if you don’t want
to.
Enough “ranting” let me teach you something
Conditional logic is the coolest thing in the world and it will make your life easier if you exercise discretion.
Practice makes good. Sometimes the only difference between
index.php and page.php are a few lines. So just use a few conditionals specific to
page.php and save yourself yet another file to edit or sift through
You can combine conditionals!
Know your car; know your theme
When you ride with someone and they take a parking spot in one turn, or surprise you with a remarkably tight parallel park, how do you feel? Your friend driving that car knows his car.
Using conditional logic, you can cut down on the number of theme files you have to worry about. It’s like driving a smaller car. Not really.
A few examples
Some screenshots from the code editor on the theme I privately developed.
I’m lacking files!
No: Page.php Archive.php Author.php Category.php And then some
Fewer files to edit
Modular CSS loading
Why load CSS rules for comments on every page?
Also has some CSS for a custom page
Prevent a page fromlinking to itself
Mostly overlooked, but it’s a nice thing to do
Yes, people are used to this happening, so when they come across something that reminds them you thought about them, they might just feel a little better.
A word about content
Designing for the web requires content. Play with wireframe sketches, layout and
Lipsum all you want; your design won’t come to life without content.
Identify the aims to every project: why does someone even want an online presence? To have a voice? To win an election? To sell ads and make money?
Quick recap
Design is a tool, a means to an end Ten principles of good design by Dieter Rams No one theme or framework works for all
possible projects Rolling your own theme is not a bad idea Use conditionals to cut down on
inefficiencies and maintenance efforts Learn to see your project from your client
and their target audience’s eyes Content might not be king, but it’s not dead