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.
- 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."
Owner, Eyebox Media LLC
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.
Installing a Local Development Environment
How to install a local WordPress development environment using Local by Flywheel to create our own plugins.
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.
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.
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.
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.
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.
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.
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!
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.
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.
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.
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.
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.
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.
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?
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.
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.
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.
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.
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.
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.
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."
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.
- 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 🙂
Meet Brian Hogg
I also teach on my blog, through screencasts, and speaking at conferences.
Here's some nice things people have said about my courses:
This is really excellent for those looking to get into commercial #WordPress plugins https://t.co/VuJOwW1g6s
— Pippin Williamson (@pippinsplugins) February 12, 2017
I've done the first couple of modules and loving it so far. https://t.co/ohNnOSmCcU
— Christine (@SmoothSailingHI) November 20, 2017
had a great time with @brianhogg on his ProPlugins Course. I learned a lot from his course. wish if he had done this couple of years ago 🙂 pic.twitter.com/yk7yb4aQGe
— Muhammad Adnan (@hiddenpearls) February 22, 2017
— Yuriy Vasilyev (@yuriivasyliev) April 28, 2016
— Juan De la torre (@JuanDevWP) March 16, 2016
So thanks to @brianhogg I've now launched https://t.co/7SgjKNVpO0. Use code TLAUNCH for 20% off until next Sunday #WordPress #SVG #Security
— Daryll Doyle (@enshrined) March 3, 2017
Still not ready? Sign up for sample lessons to help you get started.