I built my first WordPress site in late 2004, back when it was still fairly new and exclusively used as a blogging platform. The site I created was an abomination of tabled based layouts and graphics that would make me physically ill to look upon today. Since then, my development skills have grown considerably, as has WordPress. It is now the most widely used CMS in existence, capable of handling everything from the blog you set up for your cat, to full-featured, professional websites.
One reason WordPress has become so popular, is that it allows you to get a website up and running in less time than it takes to get a table at Denny’s, even if you have no design skills or experience with web development. Just run the install (most web hosts offer some type of “one click” install), grab one of the hundreds of free themes available in the WordPress repository, and you’re off to see the wizard.
If you are like me, however, a pre-made template never does exactly what you want it to do. If you really want to take advantage of everything WordPress has to offer, you’ll want to customize your theme, or maybe even create your own.
Whatever you want to accomplish, chances are you can find a tutorial or a discussion forum somewhere online that will point you in the right direction. The drawback to using this method is that you may or may not always understand what you find, even if you can get it working.
Having learned much of what I know using the “I need to do X, so I’ll Google it” method, I can tell you there are a few skills that will make your life much easier if you know them before you start trying to build custom WordPress themes.
Learn HTML and CSS
HTML and CSS are the basic building blocks of the Web. If you’re considering developing or customizing your own WordPress theme, chances are you already know at least some HTML and CSS. But if you don’t, you’ll definitely need to learn.
Learn to Program in PHP
WordPress is software. It is written in a programming language called PHP. If you’re going to travel to the Wonderful World of WordPress, you will benefit from knowing the native language. If you know the basics of PHP, you won’t be quite as disoriented when you start digging into your first WordPress theme. Plus, sooner or later you’re going to need some functionality that isn’t already built-in. If you know a little PHP, you can write your own custom functions to do whatever you need.
When I first started working with WordPress I had the advantage of knowing a little bit about computer programming. I wasn’t an expert by any stretch (nor am I now), and I didn’t know anything about PHP, but I was familiar with a few basic programming concepts. If you have no idea what an “If Then” statement is, or the difference between a string and an array, don’t panic. You can learn those concepts as you learn PHP.
Learn About the WordPress Database
Put simply, MySQL is how WordPress remembers stuff. Every post, page, and setting is stored in the WordPress Database. The SQL in MySQL stand for Structured Query Language. You can work with WordPress for a long time before you will need to write your own SQL statements, but having a basic understanding of how information is stored and retrieved from the database can come in very handy, especially when you have to do something like transfer a site from one host to another.
Learn about Graphic Design
This is really optional, depending on what your goals are. If you plan on working with a designer to create the look and feel of the site(s) you develop, you can skip this. But if you are ever likely to be faced with any design decisions (even decisions that might seem trivial), do the world a favor and invest a little time in learning about graphic design. Otherwise, don’t be surprised when someone starts making fun of your typography.
While you can accomplish a great deal in WordPress without ever needing to touch a line of code, having these skills will give you the foundation you need to you to reach beyond the limitations of plugins and pre-made themes, and put you on the path to real WordPress development.