What tools you need to get started in Wordpress design and development
Getting started in WordPress development looks daunting from the outside, what with all the different text editors and IDE’s to the different codex’s and functions and that weird “git” thing everyone keeps talking about. This article attempts to give you a quick overview of the different tools you’ll need and where they all fit together in terms of working with WordPress. The first thing I’ll make abundantly clear is that there is thousands of different ways you can setup your workflow and what works best for you is something you’ll only discover with practice, personally I still find myself tweaking my workflow every couple of months as I learn new tricks or discover awesome new tools.
Writing your code
There’s two big ticket options you have when writing code and they are either to use a text editor (like Sublime Text or Notepad++) or opt for a full blown IDE (Integrated Development Environment)(like Dreamweaver or PHPStorm). Generally IDE’s are much more feature packed and have extra tools for assisting you in writing code but may also force or nudge you into their way of doing things (not that that’s always a bad thing). Text editors on the other hand are much lighter and let you do your own thing and just add some critical tools for speeding up your code writing like syntax highlighting and predictive/auto-complete text. Personally I’m yet to find an IDE that fits with the way I work so I opt for the text editor approach and use Sublime Text.
It should also be noted that were seeing more and more text editors coming out these days that kind of blur the lines between these 2 once rigid categories.
Testing your code
The first rule of development is to never perform changes on a production server, its a rule most young developers (myself included) will often break out of convenience until it kicks them in the teeth. Once you’ve leant this you’ll need somewhere else to test your new theme or plugin you’re hacking away at. The options here are to host a copy or WordPress locally using XAMPP, MAMP or any other LAMP stack (wpmudev have great tutorials for PC & MAC) or host your development site on a web server.
Typically most people will start out developing locally because it’s free and easy to get started. Whether you then move to hosting your development instances depends on the answers to a few questions:
- Do you already have a VPS or cloud server where you can run development instances?
- If you have a VPS or large capacity hosting service then hosting the development sites is unlikely to cost you much more than you’re already paying.
- Do you have a staging site to demo to clients?
- If the projects are small you might not need a staging & development instance and instead might host your development version to show to clients
- Do you have more than one person working on development of the site?
- If you have multiple people working on development you need some form of hosted copy to prevent people overwriting each others work or double handling. This topic streams into version control which I’ll cover next.
Getting your code to the server
Once you’ve written your code you need to get it to the server (be that development, staging or production). To do that we also have a few options, the traditional approach is to connect using an FTP client like Filezilla and upload the files overwriting the existing files on the server. This is quick and easy but has flaws in that there’s not much in the way of comparing changes to what you’re overwriting and no easy way to undo if you broke the site (short of utilising backups).
The web is now slowly transitioning to the age of version control with tools like Git, Subversion and Mercurial and while WordPress doesn’t quite make it autonomous yet to utilise version control it’s certainly possible. This is a great article to get your started with version control within WordPress the right way.
Putting it all Together
Now we have the tools to write, test and deploy code to a server! Once you get the understanding of these tools and processes down they will stay with you from novice to expert slowly evolving into your own unique workflow.