WordPress, as it exists today, is quite a young product. In present day, it’s almost impossible to believe that WordPress has only recently entered the double-digit age, clocking in at just over 10 years old. The disbelief comes in when one looks at just how quickly WordPress, and the community and products surrounding it, have evolved. Today, we’ll be taking a brief look back in time to how WordPress products have evolved.
Meet, Classic and Kubrick.
Classic and Kubrick were, for many years, the two themes bundled with the WordPress core. These themes are simple, clean and focused around your content. They also formed the starting point for many adventurous WordPress users who decided they wanted to have a poke around in the code.
These two themes have been flies on the wall through many years of evolution within the WordPress products space, and are my go-to reference point when looking at other themes that have stemmed from the community.
In late 2007, the market for premium WordPress themes began to expand. With businesses such as WooThemes, Revolution (now StudioPress) and others spearheading the industry, WordPress core, and the products took on a new slant, appealing to customers looking to get their businesses online with more than just a static HTML page.
Up until this stage, themes were available predominantly via the free themes directory on WordPress.org, a few niche developers offering free themes via their own blogs, or users would just use Kubrick or Classic and customize it to suit their needs. With this ushering in of a new age of WordPress came several additions to how theme users perceived WordPress themes, both free and paid. Certain features, such as theme options, widgets, shortcodes and alternate style options, became somewhat of a “norm.” What was the root cause of this shift in perception?
When offering a premium product to a specific market, it is incredibly important to convey the value one’s product provides, in comparison to the existing marketplace offerings. Value is a concept that is either physical or perceived. In either scenario, value is both intrinsic and important. When selling potential customers on how a premium theme offered more value, the trend was always to provide physical value (widgets, shortcodes, theme options and the like) with the perceived value not being the primary focus, despite always having existed (time saving, quality of the product, etc).
This shift resulted in the move towards very code-heavy themes with myriads of options, custom widgets, shortcodes and, in several cases, entirely custom templating engines. The “functions.php” file is available in themes, and doesn’t discriminate between one piece of code and another. Developers often start out with developing themes, as they’re a visual entry point. Subsequently, the “functions.php” file became the host for widgets, shortcodes, advanced custom logic and more. The aim with all of these additions was perceived as providing value. While the features certainly did provide value, the developers creating these themes were digging a whole and crafting a new perception for what is to be expected in a WordPress theme.
Classic and Kubrick remained the same. Clean and simple skins for WordPress.
Plugins: the third wave.
The widgets, shortcodes, etc, mentioned above all actually belong in plugins. This has been the WordPress philosophy from day one, as illustrated by the Classic and Kubrick themes. In addition to this, the “functions.php” file available for use by themes doesn’t restrict what kind of code should be present in the file. This, too, is in accordance with the freedoms and philosophy of WordPress.
With all the code-heavy themes available today, developers have begun making the move towards separating functionality out into individual, standalone, plugins.
During this third wave, the perception of WordPress users and customers is slowly shifting away from that of “has features, has value” to a true understanding of what it means to be a WordPress theme or plugin. While this shift is slow and steady, it is important to recognize that those endorsing this move back towards how themes and plugins are intended to interact are remaining steadfast in their belief. We at WooThemes, for example, are moving our functionality out into standalone plugins, enabling the customer to activate only the functionality they truly desire. We are also using these steps to improve and refactor each piece of functionality to ensure it is doing the best job it possibly can.
Going forward: a golden concept.
There have been many (many!) blog posts about functionality within WordPress. Which functions go into a theme? Which belong in a plugin? There are also many schools of thought on this.
To end of the history portion of this article, and to begin the discussion in the comments, I’d like to propose a golden concept/way of thinking with which I approach this question.
If a function is detrimental to the presentation of your theme, it belongs in the theme. This covers functions to output the post meta (categories, tags, date, etc), a function to register a sidebar area, etc. If the function isn’t detrimental to the theme, it belongs in a plugin (for example, a slideshow post type and logic, a widget to embed a YouTube video, etc). These kinds of functions can be run using any WordPress theme and aren’t specific to the theme in use.
While this shift won’t happen quickly, it is important to discuss and be aware of the shift that is happening within the WordPress developer community. Be a part of the change, understand the history and share in the evolution of an amazing product and ecosystem.
Image: Saad Irfan via Flikr
Chief Product Officer at WooThemes. I’m a WordPress and web developer who loves making things work, creating WordPress plugins that answer the question “wouldn’t it be cool if” and pushing the boundaries within the WordPress and digital space. I’m an avid musician and a somewhat occasional blogger as well. Lover of punk rock, innovation, business and 80s/90s cartoons.