WordPress is my go to CMS platform of choice. It’s an incredibly flexible open source and user-friendly platform that (at least for me) makes website development enjoyable over other platforms I’ve tried. When I first approached the platform as a web developer, I initially thought it would make sense to find a theme that I liked, or was close to a specific design and modify it for my own needs.
If web designers or developers want to use this approach, that’s cool with me. It can be especially tempting to do this if you’re happy with a theme out of the box that requires very little modification, if your client budget is really low (leaving little time to design) or if you haven’t created a custom theme before.
The first version of Web Dev Door for example was a modification of a default template (the blue theme circa 2008). I gradually changed this theme over time until it was totally unrecognisable from the theme it started from as shown below.
With hindsight, it would have saved me a lot of time and effort in the long run had I spent some time understanding and working out how to build a theme from scratch.
Working out how to creating a bespoke WordPress theme takes a bit of time initially but should be straightforward to anyone who’s familiar with HTML, CSS and a bit of PHP. Compared to other CMS platforms such as Joomla or Drupal, the learning curve isn’t half as steep. There’s a huge community out there and plenty of tutorials to get you going (eventually I’ll try and get a few on Web Dev Door). This WordPress tutorial by Chris Spooner for example gives a good run down and helped get me started.
Once I started developing my own bespoke themes and templates, it quickly became obvious that this should be the way to go for any developer working with WordPress. Hopefully my reasons below will help convince anyone wanting to get into WordPress development that bespoke theme creation is hugely worthwhile and rewarding.
Every WordPress theme is unique, created by different developers with varying approaches. Whilst each theme will have the same common core pages, there will be very little consistency with how themes are structured and coded.
Everything from HTML structure, CSS mark-up, naming conventions to functions and PHP code will vary hugely, which can often make even simple tasks such as tweaking column widths or styling comments an overly time consuming process.
This should be reason enough alone to start developing bespoke themes.
You could have the most fantastic blog or useful website but if it looks like a clone of thousands (perhaps hundreds of thousands) of other websites out there, it will get lost amongst the noise.
WordPress drives nearly 20% of the web and I bet most people will recognise the default ‘Twenty’ themes a mile off. If you have an identikit looking site, people will be less impressed, less likely to link to you and less likely to come back. Creating custom themes gives you the opportunity to create something different that looks exactly how you want it to look.
The below websites are some examples of custom WordPress themes I’ve had a hand in developing at creative agency m360. I’m lucky enough to work alongside talented designers who have designed the below.
Sure, you can learn WordPress by modifying existing themes but creating a theme from scratch opens up a whole new world. Everything starts to fall in place. You’ll spend less time ‘hacking’ a theme and more time crafting and learning and you’ll feel much more satisfied with you’re work.
After you’re first WordPress theme, you’ll probably want to start developing you’re own framework. A basic set of files, styles, functions and structure that you can use as a foundation for any WordPress project. This will be based on your coding methodologies and preferences which you know and won’t need to decipher. Any changes, updates or additions to any of your WordPress themes will be much easier as you’ll probably already know which CSS styles to change or which function to modify.
I haven’t released a theme (yet) but all themes have to meet a minimum set of requirements before they are released. Many theme developers want to make their theme as awesome as possible so they’ll usually give users a multitude of options that they can use to customise their WordPress site. Most of these options probably won’t be used, adding unnecessary files, styles and bloat and potential processing.
Developing your own themes will mean you only need to create functions, code, styles, files and structure that project needs. This will keep things clearer and cleaner
How optimised is that off-the-shelf theme you’re using? Who knows! It’s probably good enough but good isn’t awesome and you probably want to work towards awesome. Your theme could be using depreciated functions for example, or query_posts() instead of get_posts() – two querying functions that essentially do the same thing but the former is more database intensive. If you’re in the driving seat, you can control queries, optimise your code and do all the fine tweaking (if you wish) to get the most out of your theme.
Checkout my article on ways of improving WordPress speed for more insights into improving the speed of your site
One of WordPress’s strengths is the sheer amount of plugins available, but this makes it all too easy to fall in the trap of finding a plugin for even the most basic of tasks. When you start developing custom themes, you’ll spend less time wondering why plugin X doesn’t work with theme Y because you realise that in many cases, you don’t even need a plugin at all as all you need to do is string a few WordPress functions or commands together.
I know there are some decent plugins out there for this but I like to have complete control over all aspects of the SEO on a site. SEO is so integral to all stages of website development including the way the website is structured and coded. Getting on-page SEO right from the outset is a lot easier with custom theme development rather than trying to change the structure or code on an off-the-shelf theme at the end of a project. If you want to create custom excerpts and use them for Meta descriptions for example, or Tweak Meta titles based on page type then this should be a lot easier with a bespoke theme.
I’ve had one or two clients say things like “I don’t want my site to look like a WordPress site” when we recommend using WordPress as the CMS platform for their project. I can’t blame this viewpoint because of the sheer number of identical looking sites on the internet, sites where the website owners don’t change the default theme or even the ‘Just another WordPress site’ tagline. This helps fuel a perception with some folk that all WordPress sites are constrained to a set of inflexible templates which couldn’t be further from the truth.
The less default themes are used, especially by developers, the more this perception will improve. A bespoke WordPress theme will look unique and you won’t be able to tell what CMS is behind it just by looking at it.
If you are or want to be a WordPress developer, or use WordPress as part of your career, it goes without saying that the more you know about the platform the better your career prospects will be where the platform is involved. Being able to develop bespoke WordPress templates will give you a huge advantage.