THEMES - Starter vs. Framework
Ryan Kanner (@CodeProKid)
- WordPress Developer for 6+ years
- I love WordPress
- Transplant from the east coast
- Work for an Internet marketing company in Denver called Fruition
- Fun fact: I have a rabbit named Mumma, and she's awesome
Things this talk will address
- I'm building a custom theme, where do I start?
- I've been building custom themes for a while, and I'm tired of doing the same things over and over again.
- What's the difference between a framework, a starter theme, and a parent theme?
- Clients want the world, but only have a dime to pay for it.
- You want people to blog about how awesome your websites are, but you only have 30 hours to build them.
- You work with awesome designers who create unique, beautiful sites, but you have no time to build them.
If the first line of code you write is a doctype, you might be _DOING_IT_WRONG();
Using a parent theme, starter theme, or framework is a great way to speed up the development of your sites, without compromising your integrity.
- Every theme can be a parent theme (unless it already has a parent)
- Parent themes are meant to utilize child themes in order to customize functionality and styles.
- Easy to work with
- Simple process to modify
- Actually looks like something out of the box
- It's a complete theme, and provides coverage for a lot of base styles and templates you wouldn't normally think of.
- Most employ the "kitchen sink" approach which can leave you with bloated stylesheets and unnecessary template files.
- Sometimes require a lot of work to override code.
- Sometimes if you just need to change one line of code, you have to copy over the entire file that contains that code.
- I need to get a site built fast, and I really don't care about the scalability of it.
- I'm fairly new to WordPress and want to learn while I'm building a theme.
- I'm building a simple theme that has a similar layout to my parent theme.
Public Service Announcment:
DON't HACK PARENT THEMES
Seriously... Don't hack parent themes
- A starter theme is a base theme that is meant to be hacked on top of to create a brand new theme.
- Often barebones theme that includes only the essentials.
- Provides a great foundation for a developer to start from.
- Normally includes some utilities for developers to speed up development time.
- End result is usually very light weight.
- No global updates
- Barrier to entry is a little bit higher
- Often is less complete out of the box
- Usually more work for the developer
- I'm comfortable with building themes, but the parent theme I've been using is leaving my site bloated with unused features.
- I just need the basics to get me started, I can do the rest.
- Our sites are 100% custom, and often don't fit inside a box.
- Theme frameworks are focused on extending core functionality, and are often used with a starter / parent theme.
- Can be implemented in the form of a plugin, a theme, or just some drop-in code.
- Popular amongst large theme shops.
- Separates functionality from visual components.
- Offers an easy way to provide global updates to site functionality.
- Usually has built in hooks and filters to easily modify functionality with out having to rewrite large sections of code.
- Makes content extremely portable if you consistently use the same framework.
- Highest barrier of entry
- Each framework takes different development approaches which developers will need to familiarize themselves with.
- Can often lead to redundant code, or contain many unused features.
- Our sites normally have a lot of the same functionality, and it would be great to control that from one place.
- Hooks and filters are my sh*t.
- I work with a very specific business vertical that requires a unique set of functionality.
The DIY Route
Where do I start?
- Look at sites you have built before, and identify the common features.
- Dig through code from other themes.
- Fork another boilerplate
Stuff in my starter theme-Work
- Logo upload
- Custom sidebars
- Favicon upload
- Social links
- Social feeds
- Slider functionality
- Custom widget classes
- Plugin dependency manager
- Debug functions
- Helper classes
- Query shorthands
- Custom login logo
- Custom excerpt function
- You have 100% control of your codebase.
- You can make some assumptions that you wouldn't otherwise be able to make.
- Tailored to all of your needs. Provides you with exactly what you need.
- It's a lot of ongoing work.
- Requires a deep knowledge of core, and an in depth knowledge of your company's / customers needs.
- I have trust issues when it comes to code.
- Our clients have very specific needs, and there is nothing out there that will fill all of these needs.
- We need to build our sites quickly, but they are often 100% custom.
Which ONe is right for me?
- Next time you get frustrated implementing a feature you've built a thousand times, make note of it.
- There's a lot of options out there, do some googling, and mess around with some stuff to find what's right for you.
Themes – Starter vs. Framework vs. Parent
By Ryan Kanner