Already purchased? Login here

Learn WordPress Plugin Development

Are you looking to level up your skills and learn to create WordPress plugins instead of just installing them?  You've come to the right place.  You'll learn how to install the tools you need, all the way up to learning the essential WordPress plugin development tasks.

Learn to build your own custom WordPress plugins


There's a lot of WordPress plugins out there you can use, but what if you (or your paying client or employer) wants something that doesn't exist, or maybe works a bit differently?  Where do you start?

This course will teach you the fundamentals of building WordPress plugins.  I'll save you hours of googling around the internet trying to find what you need, and hopefully stop you from hacking things together 🙂

What Will I Learn?


We'll cover the essential topics like:

  • Installing a development environment on your own machine to work on your plugin
  • What makes a plugin
  • The basics of PHP (the language WordPress is built with)
  • The building blocks of WordPress functionality (actions and filters)
  • How to build a settings page for your plugin
  • How to work with posts, pages and The Loop
  • Fetching and saving data
  • Adding and working with shortcodes

...and some more advanced topics like:

  • Ways to protect your code from security threats
  • Using your plugin to customize other plugins (so meta...)
  • Tracking changes to your plugin code using Git version control
  • Getting your plugin ready for translation into other languages
  • How to save your data to a custom table (and why you'd want to)


All in short, easy to digest videos you can refer back to later!

Who Is This For?


Almost anyone who's looking to create WordPress plugins for clients, your employer, or to release to the public.

Those with a lot of programming experience will be able to go through this course quickly, but I've tried to structure the course to walk you through every step of the way.

That said this isn't programming 101.  If you have no concept of things like variables, loops, functions, if statements and the like, you might want to go through something else first.  I will go through the syntax in PHP (the language you'll be coding your plugins with).

Likewise, if you have no understanding of basic HTML and CSS, this might not be the course for you.

  • Those coming from another language like JavaScript, Python or Ruby, but looking to quickly grasp WordPress development
  • Existing developers who want to create a plugin for release (for free and/or as a premium paid plugin)
  • WordPress site creators and maintainers wanting to provide additional services to their clients or employer
  • Anyone with an understanding of basic programming concepts who wants to apply those skills to customizing WordPress sites

Not sure if it's for you?

100% money back guarantee

"Great course! It really answered every single question I had regarding preparing a plugin the correct way. I really enjoyed it, and I am applying that knowledge to a plugin I'm building."

Eyebox Media LLC

Colby Albarado

Owner, Eyebox Media LLC

Course Outline

Each video breaks down a concept of WordPress plugin development and allows you to refer back to it easily in the future.

All videos are professionally recorded in HD.

  • Lesson 1

    Installing a Local Development Environment

    How to install a local WordPress development environment using Local by Flywheel to create our own plugins.

  • Lesson 2

    Creating a New Plugin

    Before we learn how to make more complex WordPress plugins, we'll create a basic one and activate it in the WordPress admin.

  • Lesson 3

    PHP for WordPress Introduction

    Let's review PHP (the language we'll be using to code our plugins), with notes on using it with WordPress and supporting older hosting companies.

  • Lesson 4

    Actions and Filters

    One of the core concepts that gives WordPress it's power and flexibility is actions and filters. Let's go through what they are, and how to use them to modify WordPress, other plugins and even your theme without "hacking" anything.

  • Lesson 5

    Adding a Shortcode

    Shortcodes are a great way to let users add formatted content where they need it, without needing to know any HTML. Here we'll go through adding one for our plugin, along with providing shortcode options for the user to customize it.

  • Lesson 6

    Working with an Individual Post

    A common thing we'd want to do is get information about the current Post or Page that we're on. WordPress gives us a bunch of different options to do this, let's go through them here.

  • Lesson 7

    The Loop

    WordPress has this concept of The Loop (capital L), so what is The Loop? Let's look at how it works and how we can modify it for our needs.

  • Lesson 8

    Custom Post Types

    By default you get a couple post types with WordPress, namely Posts (which you'd normally use for blog posts) and Pages (which you'd usually use for more static content like Contact and About Us). WordPress also supports the ability for us to add our own custom post types with our plugin, which let's us turn WordPress into a full featured content management system. Let's go through how to add and use one!

  • Lesson 9

    Working with Additional Post Data

    So what if we want to include additional information in a post? Maybe we want site users to specify the location of a news article, and display it before our main content in a certain way. Let's do that by adding a custom meta box to our WordPress content editor with a field for the user to specify any additional information.

  • Lesson 10

    Organizing Our Plugin Code

    Our plugin code is getting a bit much to have in one file. Let’s split it up into several different files and group some common code together.

  • Lesson 11


    While the code in the last video worked to save the meta data for our post, we didn’t do any checks that the input is safe and that it’s actually a logged in user giving us the data. We’ll go through sanitizing the input, escaping the output, using a nonce to create a token, and verifying the user has permissions to edit the post itself.

  • Lesson 12

    Querying Posts

    Learn how to fetch previously entered posts and loop through them. We’ll see how get_posts and WP_Query are different, and query for related content to display at the bottom of our news articles.

  • Lesson 13

    Creating a Plugin Settings Page

    Maybe we want to let our plugin users pick how many related news articles to show, or whether to show them at all? What about calling them something other than related news? These are all things that would be great to have on a plugin settings page, so let’s set one up.

  • Lesson 14

    Adding CSS and JavaScript Files

    WordPress gives us the ability to add or "enqueue" our scripts and stylesheets where we need them, and handle any conflicts or including requirements (like jQuery) for us. We'll briefly go through how to do this, but more detail is in my free-to-watch Working With JavaScript and WordPress Course.

  • Lesson 15

    Dealing with Errors

    What if a user forgets to enter something in our settings form, or the data is wrong? Let's handle errors in the input and provide some useful feedback.

  • Lesson 16

    Inserting Content Using Code

    Your plugin might want certain posts or pages to be available to our plugin. Rather then getting the user to create them, why don't we insert the necessary content when our plugin is activated?

  • Lesson 17

    Using WordPress Coding Standards

    If you have previous experience in PHP you may have noticed some odd spacing in the code we've been writing so far. This is part of some of the WordPress coding standards and formatting guidelines, making your code easier for others to work with and contribute to.

  • Lesson 18

    Dealing With Older Versions of WordPress and PHP

    If you're distributing your plugin to others, it might be activated on (much) older versions of PHP and WordPress. Our plugin should detect this and if using an older version than our plugin supports, we should fail gracefully instead of taking down a site.

  • Lesson 19

    Preparing Your Plugin For Translation

    You have a plugin, but you want users to be able to use it in their native language. Let's look at how to get it ready for translation, and things to watch out for as you change your plugin over time.

  • Lesson 20

    Working With Custom Database Tables

    WordPress stores the data about posts, pages, custom post types and more in database tables. But depending on what information you're storing and querying for, it may be a lot more efficient to store it in a new table you create. Let's learn how to do that.

  • Lesson 21

    Improving Performance With Transients

    If you have content that doesn't change very often, there's no reason to query the database each time. With WordPress transients you can save a copy of any results or output to load it quickly, and have it expire after a certain period of time.

  • Lesson 22

    Fetching data from an external source or API

    Your plugin might use other services or data from outside of the current site. WordPress provides some functions for getting that data, allowing you to fetch it on a variety of different WordPress hosting platforms.

  • Lesson 23

    Adding a Plugin Introduction Screen

    One way to help users get started with your plugin is to show a welcome or introduction screen. We can add one when our plugin is activated, the best time to help the user get started.

...and any other additions to the course in the future!

"Brian is one of our most dedicated and inspiring teachers/mentors and has been with our chapter since we launched in 2013. Our learners thrive under his instruction and the projects we see by the end of the class reflect the confidence and newfound excitement for technical skills he fosters in our classroom. We’re delighted to have him involved with Ladies Learning Code and would encourage anyone to learn from him."


Meg Smith

Hamilton Co-Lead, Ladies Learning Code

What You'll Get

The course is still being completed, but Plugins for Beginners is available now in early access for anyone who wants to get started right away.

You'll get:

  • Instant access to the private course area
  • Watch the 23 lessons right away
  • Lifetime updates and access to all new content created for the course

Still not sure about Plugins for Beginners?

With my guarantee, you have zero risk in registering for the course.

If within 30 days of registering for the course you feel you haven't learned how to start creating your own WordPress plugins, let me know and I'll refund your money.

I'm confident however that you'll have all the tools you need to start quickly creating your own plugins, and be able to refer to the videos in the course as you continue to develop your plugins for clients or public release.

Frequently Asked Questions

Can I get a full invoice?

You can! Just login to your account and click 'Generate Invoice' to get a full invoice for accounting purposes.

How do I watch the videos?

Once you buy the course, you'll get access to the private course area where you can watch all the videos. All videos were professionally recorded in HD with high quality audio, so they'll be easy to listen to!

Do I get lifetime access with no monthly/yearly fees?


What if I'm not happy with the course?

I really want you to get value out of the course, and only want your money if you're happy with it! If you aren't, please send an email by replying to the welcome email you receive within the first 30 days and I'll refund you.

Can I purchase multiple copies of the course for my team at a reduced price?

Yes! Email me and we can work something out for your team.

I have another question!

No worries! Send me an email 🙂

Brian Hogg New Photo Headshot 3

Meet Brian Hogg

Hello!  I'm @brianhogg, creator of three premium plugins, author of Working with WordPress and JavaScript, former lead organizer of WordPress Hamilton, and co-host of the Selling Plugins series.

I also teach on my blog, through screencasts, and speaking at conferences.

Here's some nice things people have said about my courses:

Still not ready? Sign up for sample lessons to help you get started.

© Brian Hogg

Twitter | Terms & Conditions

Get a free lesson!

To grab some free lessons to start learning WordPress plugin development, enter your email below.


Already in the course? Login here

Nope, close this.

[mc4wp_form id=”740″]