Before I did a little research on the subject, I always had trouble understanding exactly what a framework is. After doing some digging I’m still a little confused on the matter. Do some searching online and you’ll find that the terms “framework” and “library” are interchangeable depending on the context.
At first it’s kind of like when people start talking about using GPU’s as CPU’s. Or when someone asks you what “is” is? (e.g. Bill Clinton on the witness stand) Unless you have been working with computers and discussing computer science theory for a while, the concepts can get twisted in too much theory to do you any good. Think of hot rods or PC’s as an example.
There are many different manufacturers that make compatible components for PC’s. You can pick and choose hard drives, graphics cards, chips, monitors and other parts based on how you’d like your machine to perform. This is the same with Theme Frameworks. You have a basic template that is ready for you to build upon. The best way to learn about frameworks is to start using them. They allow you to take the WordPress environment and chop it up any way you’d like.Even someone with just a basic understanding of web design can use a framework to get some powerful results.
Frameworks in Web Development
If you want to be a serious web developer, you are going to need to learn how to harness the power of frameworks. Even if you just want to design websites you might as well get acquainted with them. First I’ll define what web frameworks are and how they can be used before we get into WordPress frameworks. The rest of the article will answer some questions regarding frameworks within WordPress. What are they? Who should use them? What type of frameworks are out there?
Everything from an AJAX powered search function to a modal window will take some coding. Web application frameworks work to manipulate code with high level languages. They are what most developers use to build web applications. This can be anything that powers a sites dynamic behavior, web apps, web services or web resources.
This is where frameworks can help you out. The goal of a web framework is to empower designers and developers to focus on building their sites features – instead of focusing on writing thousands of lines of tedious code by hand. This allows people to build complex and modern websites within a fraction of the time it otherwise would. You can use frameworks within a CMS like WordPress or Drupal, or use them to build sites from the ground up. A few of the most popular web frameworks include:
- Bootstrap (CSS)
- Rails (Ruby)
- Django (Python)
- CakePHP (PHP)
What Type of Frameworks are there in WordPress?
Frameworks in WordPress can mean a number of things. The WordPress Codex defines a framework as one of three things:
- A “drop-in” code library that is used to facilitate development of a Theme
- A stand-alone base/starter Theme that is intended either to be forked into another Theme
- A Parent Theme template
The codex is describing the basics of what you can do with frameworks. You can use a framework to develop a theme, integrate functionality into a theme, or use it as a basic template to build a theme from scratch. Frameworks align with the module type of customization that makes WordPress so accessible in the first place. So, what kind of frameworks are available? There are good ones and bad ones, premium ones and free ones. Jokes aside lets go through the 3 examples given by the codex.
“Drop in” Code Libraries
These are not stand alone and will be used in conjunction with existing themes. Use frameworks like Unyson or Carrington to add functionality to your WordPress theme. You can attach these types of frameworks to your site and create countless pages and functionality. This can be handy for building upon your site in a modular way.
Base or Starter Themes
A theme framework like Thesis or Genesis is a code library that can be used to build a theme. Instead of picking and choosing certain functions to integrate into your site, the entire framework caters to certain aspects of performance. Genesis, one of the most popular frameworks is well known for being SEO friendly, while others may focus on visually impressive fx or eCommerce. This kind of basic template lets intermediate to advanced developers start off with a barebones theme to build upon.
Parent Theme Templates
Any theme can be used as a parent theme. See our article on creating a child theme, but a WordPress theme framework has much more to offer. In addition to the core theme files and functions you will also get screens for options and add-ons such as a custom API. It’s easy to confuse the two, but parent themes are already finished and ready to be used as a final product. A parent theme template allows a saavy developer to get a much more suitable final product based on their needs.
Pros and Cons of Theme Frameworks
Like all good things in life, there are some benefits as well as drawbacks to using theme frameworks. Let’s go through them.
Built-in Functionality – Theme frameworks with can come equipped with built-in widgets and offer lots of functionality.
Higher Quality Code – Using a framework can help you clean up the code. Using a ton of plugins that require lots of API calls can be overkill and don’t always follow best practices when it comes to web development in the areas of security or economy.
Support – Using a popular framework can give you access to a large community of developers waiting in the wings to help you solve any problems that pop up.
Makes Life Easier – Once you get used to a framework, you can dramatically improve your method of development. This can help you get up higher quality sites in less time.
Upgrades – You can upgrade without losing any of the sites functionality compared to using a regular theme. There are often times when upgrades are needed so this is an advantage.
Learning Curve – You will have to learn how to use the framework. This means taking the time to delve into the code library and learning all the functions. It’s basically like learning a new dialect of a high level programming language so there is a bit of learning curve.
Excessive Code – Frameworks come with a lot of built-in functions that you might not need. Most of the time this won’t be a problem though.
Limitations – Every framework is different and has a different emphasis. You may find that you can’t get the functionality you need and this will require some custom programming.
Cost – Frameworks aren’t all free, especially the best ones. It be pricey but you may also save money over time spent on plugins, themes or time.
Should You Use a Theme Framework or a Parent Theme?
In the last 5 years, frameworks have been booming with enthusiasts and web development amateurs (like me). People that don’t mind learning more of the back-end that love to tinker can turn a hobby into a viable business. Designers and developers who want to save time and become more efficient should seriously consider using a framework. If you plan on maintaining sites for any extended period of time –adding functionality and fixing bugs, frameworks are great tools.
You also get more options and flexibility than if you use a fully formed theme. If you are a developer or designer that has found that you can get everything you want out of using parent themes, plugins and some custom coding than you may not need to use frameworks. Many people are perfectly happy modifying themes and can be very successful doing this.
Is it Worth It?
Despite the fact that there is a learning curve and you’ll have to spend a bit of money, I think frameworks are very worth the investment. In the long run you can speed up development time and allow you to produce higher quality sites with WordPress. People newer to WordPress frameworks can start off with drag and drop frameworks that don’t require any knowledge of coding.
You can learn as you go along and get a good understanding of what you need. Another reason is that you will receive excellent support from the developers and community members. This is a great way to learn and solve problems. Let us know in the comments section if you are confused about anything, or if something doesn’t make sense. Feel free to let us know about any bad or good experiences you have had with WordPress frameworks.