Now well into 2013 (well, a month in, at least), and now that the new year time has passed and everyone is back from their holiday time away, I feel it’s time to take a look at what I, as a WordPress developer, hope to accomplish this year, as well as what I’d like to see this year in the WordPress community.
In order to accurately forecast in which directions the WordPress community should shift in 2013, I feel it’s important for us to look back to the past few years and identify how the community and it’s perceived desires/needs have evolved.
We’ve all heard the tale on countless occasions; the tale of a blogging platform, born out of the ashes of another by two like-minded individuals with a passion for web-based publishing. As is the nature of open source software, the community plays a large role, both in the development and direction of the evolution of the product. WordPress is no exception.
During it’s formative years, WordPress had 3 main areas of focus: core, themes and plugins. Each of these sections have impacted on the others over the years, for a single reason: the community is learning. We have all these awesome components we can use to build exciting websites… we just didn’t always know the best fit.
The first two could be covered in depth in their own blog posts so I’ll do a cursory pass over them and deep-dive into the one that I want to all of us to focus on in 2013:
The most visual of the three pillars mentioned, working with or creating themes is the easiest entry point for the majority of new WordPress users, be they publishers, designers or developers learning a new system. It’s logical and visual, so why not step in, right?
Slightly more complex and developer-focussed, plugins prove the power of WordPress time and again, allowing developers to contribute their original ideas that, while perhaps not suitable for inclusion in WordPress core, do benefit a select group of users who require the functionality offered by the plugin.
Of course, WordPress core benefits everyone, as we all run it (this goes without saying, of course). That being said, if we recap the three areas we’ve just covered, we can see that they all impact each other in a domino-like fashion.
Core can be influenced by the needs of the users. For example, the get_template_part() function came about due to a need to include small, re-usable template sections in an easy manner without having to create a custom function for the code. Other features such as the settings API and other, more tech-focussed APIs such as the HTTP and Filesystem APIs, were also influenced by the needs of themes and plugins, as well as the updating of code from WordPress.org which requires both the HTTP and Filesystem APIs in order to function. This is included directly into WordPress core, rather than a plugin or theme.
In the same manner, themes can be influenced by plugins. “functions.php” is a really easy entry point for a designer or end user who has no development knowledge to simply find a code snippet, paste it in and, “hey presto!”, they’ve got the functionality they asked for.
As they say:
A little knowledge can be dangerous.
This, avid readers, brings us to present day and to the message of this post. As mentioned in my presentation at WordCamp Cape Town 2012 (embedded below), the ever-evolving needs of the WordPress community, while benefitting the software and community in a large respect, have also given rise to several events that have caused us to stray from the core principles of what each of the above-mentioned pillars stands for.
Including plugin-like functionality in a theme is a prime example of this. Having the code bundled into the theme via the “functions.php” file creates a single package that is a) easier to market, b) easier to install and c) a single solution for the customer.
That being said, this is the complete antithesis of the intended use of the “functions.php” file. Of course, while no-one is saying you cannot do this, it’s more a case of “you shouldn’t”.
Over time, as more and more premium WordPress providers opened their doors, and more and more users flocked to WordPress, we forgot one core concept: the community is learning. Every day, someone new enters the WordPress space with no idea what anything is (sometimes, even just being given WordPress and told, “here you go”). How could we forget this crucial point?
In 2013, I’d like to see us, as a community, return to our core principles of how the various WordPress pieces fit together: core runs the show, themes make it all look great and plugins add extra functionality that makes our websites easier to maintain or provides a niche feature not bundled in core.
This, above all, is my greatest desire for WordPress in 2013.