THEMES - Starter vs. Framework

VS. Parent

Ryan Kanner (@CodeProKid)

http://slides.com/codeprokid/themes/

ME.

  • 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?

Overview

The problem

  • 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. 

Parent Themes

Definition

  • 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.

Advantages

  • 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. 

Disadvantages

  • 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. 

Use cases

  • 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. 

Examples

Public Service Announcment:

DON't HACK PARENT THEMES

Seriously... Don't hack parent themes

Starter Themes

Definition

  • 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. 

Advantages

  • 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. 

Disadvantages

  • 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

Use cases

  • 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.

Examples

Theme Frameworks

Definition

  • 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. 

Advantages

  • 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. 

Disadvantages

  • 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. 

Use cases

  • 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. 

Examples

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
  • Breadcrumbs
  • Custom login logo
  • Custom excerpt function

ADvantages

  • 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. 

Disadvantages

  • It's a lot of ongoing work. 
  • Requires a deep knowledge of core, and an in depth knowledge of your company's / customers needs.

Use cases

  • 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?

¯\_(ツ)_/¯

Seriously though...

  • Experiment! 
  • 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. 

Thanks!

Themes – Starter vs. Framework vs. Parent

By Ryan Kanner

Themes – Starter vs. Framework vs. Parent

Creating a custom WordPress theme from scratch is time consuming, but why start with a blank canvas every time? In this talk we will go through the differences between starter themes, frameworks, and parent themes; and which one is right for your needs.

  • 5,063