Developing WordPress Plugins 101

Developing WordPress Plugins 101

Trying Something New

Writing your own WordPress plugins is a lot less complicated than you may think. If you have basic PHP skills then you are more than capable of writing your own plugin. To help explain the process over the next few days I am going to take a plugin I recently wrote for Solve360 (by Norada) and explain the basics of how it was built.


They explain it best themselves as “A modern CRM with features to manage projects” and after using it for a while I have got to agree with them. My own opinion as a freelance developer/IT consultant standpoint is that you simply will not find a better system. I’m not going to try to sell Solve360 to you today, but I would recommend you try out the free trial. Once you start your free trial you can also test the completed version of this plugin by downloading it here:


  • A working WordPress website
  • A text editor or IDE (I primarily use ShiftEdit, but use SciTE when I need to edit local files)

Getting Started

So let’s start with the basics, we need to decide what to build and what to name it. I am going to build a plugin that captures leads from your WordPress website and enters them into Solve360 for you. In this case I chose to name my plugin “Solve360 for WordPress.” It is short, easy to remember, and describes pretty much the basics of the plugin. Now that we decided what the plugin will do and what we will call it, let’s start developing!
  1. We will need to create a folder in the /wp-content/plugins directory. Usually the “slug” version of your name (changing it to all lower case and replacing spaces with dashes) works great, today I decided that “for WordPress” just was not necessary so I left that off. So we are left with a folder named “solve360” and it is located in /wp-content/plugins.
  2. Within your newly created plugin folder you will want to create a PHP file with the same name as the folder, so create a file named solve360.php. Once created open the file in your favorite text editor or IDE.
  3. If there is any text in the file by default go ahead and clear it out so the file has absolutely nothing in it. All WordPress plugins have to have a header that tells WordPress what it is. While also not “required” in a sense that the plugin won’t work, but still important, you should include some licensing info too. This is my header for Solve360 for WordPress:
Plugin Name: Solve360 for WordPress
Plugin URI:
Description: Add some lead capturing powers to your WordPress site.
Version: 1.1
Author: Garman Technical Services
Author URI:
License: GPLv2

/*  Copyright 2012  Garman Technical Services  (email : [email protected])

This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License, version 2, as
published by the Free Software Foundation.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA

You can for the most part tell what each line means in the header, but you can always check out more detailed descriptions in the WordPress Codex. The Codex is going to be your best friend. You can find out how to use almost every WordPress function with examples here, try checking out the do_action() page as an example. As this series continues I will reference back to the Codex regularly which will give you more detail on all the functions I use.

Your homework for today:

  • Check around in the Codex, get familiar with how it works.
  • Skim through the WordPress PHP Coding Standards. I don’t adhere strictly to these, but when coding you want to keep close to the standards.
  • Check back soon for part two!

Part 2

Photo credit: It’s an interesting sensation… 2 by Hindolbittern