Welcome to the end of the series! As we have done with other series, I find it useful to bring it all together and summarize the articles in one last post.
So in this post, we're going to do exactly that.
The Basics
We started off with some basic stuff such as the WordPress APIs we need to learn, the gravity of making your theme translatable, and how licenses work.
Here's a recap:
Learning the APIs
I think that there are six very important APIs (among all WordPress APIs) that a theme developer must learn by heart:
We went through a brief summary for each API and why you should study and learn them. Every single API has a unique mission and combining them together will definitely give you the power of creating themes with great structure.
The Importance of Localization
Did you know that there are over 50 translations of WordPress that are over 90% complete? Plus, if you look at WordPress usage statistics, you'll notice that a third of WordPress.com users blog in another language.
If you interpret it right, you will see how important it is to make your theme translatable. Better yet, you can have someone translate your theme and sell multilingual themes out of the box!
Licenses
I need to remind you that this is an easy topic, but also a delicate one. Like I said in the article, your theme will not be accepted anywhere, if you don't know how licensing works.
And there are two things that matter, when it comes to licensing: Which license will your theme be released under, and the licenses of the products you included in your theme.
If you're daunted with the idea of going through tens of licenses and trying to understand which are right for you, you're in luck: There's a website called TL;DR Legal which explains and summarizes the open source software licenses in plain English.
How to Code Well
We talked about how to write and test good code in this article.
Here's a quick review:
Coding Standards for WordPress
Here's something you should know from the beginning of your career as a WordPress developer: WordPress has coding standards for HTML, CSS, JavaScript and PHP.
They're not hard to achieve and they don't take too long to learn. For example, it's an easy thing to remember wrapping HTML tag attributes with single or double quotes. Or naming your CSS classes with lowercase characters, numbers and hyphens. Or defining an anonymous function to prevent jQuery conflicts. Or talking like Yoda when writing conditionals - no joke, either.
And there's the issue of code commenting to make your code readable by other developers. There's no official recommendation for documenting JavaScript and HTML code, but you should use phpDocumentor's style for PHP. Same goes for CSS, since you can use the same way of code commenting with it.
Validating & Testing the Theme
Validating your HTML and CSS code with the W3C validators is a no-brainer, right? But there's more than that, when it comes to making the perfect WordPress theme. You need to:
- Like we said, validate your HTML and CSS code
- Use Developer to install a bunch of useful testing plugins
- Test-drive your theme with WordPress' sample content or the big and scary data from WPTest.io
- Create some demo content for your theme to show-off your theme's features
When you're happy with the results, you're good to go!
Bad Practices
This article is different from the others: It tells you "what not to do" instead of "what to do". I decided to write this article because even though it's easy to notice how illogical they are, we can't help doing them sometimes.
Here's a brief summary with lists of stuff to avoid:
Reinventing the Wheel
- Do not try to do everything yourself, from scratch.
- Do not underestimate the tiny little functions in the WordPress Codex.
- Do not say "I can write a jQuery slider by myself!" and consider outsourcing.
Doing What Plugins Should Do
- Do not invade the "plugin territory".
- Do not hesitate to use the TGM Plugin Activation Library to bundle external plugins with your theme.
- Do not forget that themes do visual stuff and plugins do functional stuff.
Offering Everything
- Do not fill your theme with features nobody will use but makes your theme look rich.
- Do not use 10 sliders in your theme, where just one slider could be enough.
- Do not forget that these kind of themes sell fast at first but get negative reviews later.
Zero Optimization
- Do not make your theme from thousands of files that consume hundreds of megabytes.
- Do not forget to optimize your theme - both the structure and the front-end.
- Do not make your theme look like a fat cat.
Maintenance and Customer Care
Some WordPress theme developers may be forgetting that there's work after a theme has been sold; that's why I thought that we should cover the processes which come after you finish your theme. Here's what we covered:
The Importance of Regular Updates
This one speaks for itself, really: When WordPress is updated or there are new versions for the products you used in your theme, you should update it to make it work for everybody.
Plugin Compatibility Issues
This one could be overlooked as this is an optional process (like having your theme translated), but it's a big plus since there are probably millions of users of WPML, BuddyPress and WooCommerce in total. Making your theme compatible with (at least) these plugins could be the main reason people will choose your theme.
Providing Excellent Customer Support
This one is mandatory, too: You have to provide technical support for your theme's users. You can do it by just replying to questions on the support forums of your marketplace/download center, or you can do it by creating an extensive website that includes a blog, a knowledge base, an FAQ section, online documentation and contact information alogside a forum.
The Series Finale
Making a theme for WordPress is not necessarily hard but making a good theme is. Making a perfect theme? Well, that's the hardest one and that's what everybody should aim for, no matter how hard it is!
I really hope you enjoyed this series and I'd like to remind you that there's always room for improvement! If you have any ideas to extend this series with another article or to give us an idea for a separate tutorial, feel free to comment below and let us know!
Comments