WordPress Plugin Development for 2017 - Build 14 Plugins

Learn powerful WordPress development with plugins, APIs, hooks, the WP-Admin & more with free starter plugins to improve
4.1 (86 ratings)
Instead of using a simple lifetime average, Udemy calculates a
course's star rating by considering a number of different factors
such as the number of ratings, the age of ratings, and the
likelihood of fraudulent ratings.
3,606 students enrolled
70% off
Take This Course
  • Lectures 72
  • Length 7 hours
  • Skill Level All Levels
  • Languages English
  • Includes Lifetime access
    30 day money back guarantee!
    Available on iOS and Android
    Certificate of Completion
Wishlisted Wishlist

How taking a course works


Find online courses made by experts from around the world.


Take your courses with you and learn anywhere, anytime.


Learn and practice real-world skills and achieve your goals.

About This Course

Published 8/2015 English

Course Description

Have you ever wanted to know the secrets behind all the cool things that WordPress plugins and themes can do? This course is offered by an instructor who has developed over 250 WordPress plugins for major corporations and can now teach these skills to you.

For Those Developers Who Would Like To Know How To Develop Powerful WordPress Plugins!

After getting frustrated, because maybe a downloaded plugin does not fit your needs, why not take your WordPress programming skills to the next level and really learn how to develop your own plugins or customize other downloaded plugins to fit your needs?

For PHP Developers

Programming in WordPress is a snap when you already know PHP. This course shows how to take that PHP experience and parlay into professional WordPress development.


Some Videos Come With FREE Complete Plugins

Besides just teaching the advanced concepts, some videos come with complete plugins that can be downloaded and used immediately after some customization as explained in each video.

In this course, I teach the powerful WordPress development concepts from:

  • Developing WordPress plugins: from basic plugins to powerful advanced plugins
  • Adding fields to the user profile page
  • Hook programming and how to use them in your themes and plugins
  • Over 20 popular WordPress hooks available for use in your plugins and themes
  • Changing post and page content on the fly
  • Displaying messages on the administrative back end to writers, contributors and other users
  • User management
  • Writing your own dashboard and sidebar widgets
  • Hiding certain admin links and dashboard widgets from other users
  • Security hacks such as redirecting unauthorized users away from the wp-admin login form.
  • How to create a library of shortcodes in one plugin
  • WordPress' Quicktag API to add buttons to the WYSIWYG editor

When students finish this course, they will have a powerful WordPress programming skill that most developers do not have and trust me, this looks amazing to other programmers and on your resume.

What are the requirements?

  • Basic WordPress Skills
  • Basic HTML and CSS
  • Basic PHP a plus, but not required

What am I going to get from this course?

  • Develop powerful WordPress plugins: Both basic and advanced
  • Program using popular Wordpress APIs
  • Learn how to leverage over 20 powerful WordPress hooks through your theme and plugins and how to leverage them to manipulate Wordpress without editing the core
  • Restrict the Wordpress back end menu item from any group of users
  • Modify content from posts and pages on the fly
  • Add links and new menus to the Wordpress admin bar
  • Learn WordPress hooks and why they are so important for theme and plugin programming.
  • Hide certain dashboard widgets from any user
  • Add new fields to user profile pages and save them automatically when the user submits their information.
  • How to add, update and delete WordPress meta data without one line of MySQL
  • Create a social media plugin that allows the administrator to enter addresses for Facebook, Twitter, LinkedIn, YouTube and more. The plugin will both create a widget using the Widget API and a template tag that can be added to any theme.
  • Create new thumbnail sizes and access them from the WordPress media manager and your themes
  • Display messages to other administrators, writers, editors and contributors in the WordPress back
  • Secure your WordPress back end by redirecting unauthorized users back to the home page preventing even hackers can break in with brute force attacks
  • Creating your own WordPress dashboard widgets from scratch
  • Store persistent data in the WordPress database through transients using the Transients API
  • Insert posts and pages automatically behind the scenes.
  • User login detection

Who is the target audience?

  • Anyone interested in becoming a more powerful Wordpress developer
  • Any Wordpress admin with a minimal knowledge of PHP
  • Programmers wanting to expand their plugin programming expertise

What you get with this course?

Not for you? No problem.
30 day money back guarantee.

Forever yours.
Lifetime access.

Learn on the go.
Desktop, iOS and Android.

Get rewarded.
Certificate of completion.


Section 1: Introduction and the Basics of WordPress Plugin Development

Some programmers ask me why we program plugins for WordPress, so in this video, I explain the details of plugins.


Learn the lines of code that make up plugins. I take you through the complete architecture of a plugin and show you how to construct your own.


Two of the most common questions I get are:

  1. "What are the differences between themes and plugins"
  2. and likewise, "What are the similarities between themes and plugins?"

I explain in this video the major differences, but believe it or not, they are not really that different.


Check this list out often as I constantly show you how to work with WordPress hooks, which are the most important tool in any WP developer's arsenal for creating powerful and professional themes and plugins. Without hooks, WordPress could not be able to allow developers to extend it.


Scenario: What if you or your client's website needs to correct the spelling of your company name? Every time they type a company name, they forget to capitalize the name of the company. For branding purposes, it is important to capitalize the name of the company.

In this video tutorial, we show how to fix any capitalization issues with filter hook called the_filter. This hook allows us to modify any content.

For this example, we show how to fix the common error of spelling "WordPress" with a lowercase "p".


We can create post programmatically when someone submits post data through a form or through another resource such as an RSS feed. In this video, I will show the wp_insert_post() function.


User profiles can contain more than just the normal thumbnail and URL. Watch this video on how to create new and additional user fields.


In this lecture, we learn how to remove menu items from any administrator user. For example, you may not want a specific admin to have access to plugins or the settings menu.


WordPress comes with this really awesome built-in function called bloginfo() that returns all kinds of information, but don't be fooled. This function returns more information that just your regular blog stuff!


Continuing from the previous video lecture, I continue my discussion on bloginfo().


Some plugins and themes contain code to create posts automatically whether from any of these:

  • events
  • log entries
  • recipes
  • instructions
  • and more

If we are going to be powerful programmers, we need to have this skill, so in this video, I demonstrate through a plugin how to create WordPress posts and pages on the fly in the background.

Section 2: Plugins Allow Developers To Take Control of WordPress Administrative Back End

Through powerful WordPress development, we can change the WordPress back end to suit our needs, especially if we are also the administrator.

Watch this video from the instructor on some of the cool things that students will learn in this section.



What if a WordPress website has multiple writers and contributors. There may be guidelines or rules that each writer has to follow. It makes sense to add those guidelines to the top of any form where posts or pages can be added.

In this video, I show how to add that message with any HTML and CSS to the TOP of any form, so writers will see those messages.

Also, see the attached plugin file that you can modify with your own code in this video.

To start a new plugin file, download the attachment and put it in your wp-content/plugins directory. Rename this file as a .PHP file.


If you have ever logged into the WordPress back end and see those cool dashboard widgets, you may wonder how to create those. This video has the answer and the code.


Sometimes, the default admin message in the footer "Thank you for creating with WordPress." is just not good enough for our website. We can change it with the code in this video.

After you watch this video, please download the code that contains to hook to change the admin footer.


Sometimes, you need a plugin to activate itself. This video teaches students how to do that.


Using the hooks in this video, we will add a message to the END of any form where WordPress posts are added or edited. Any HTML or CSS can be displayed.

Please see the Resources section for this video to download a plugin that you can custom from this video.


Have you wondered how some plugins and themes add links to the left side and where the HTML and PHP are generated after the user clicks those links? That is what I show in this video.

In this tutorial, I explain the following:

  • how to add the main link on the left
  • how to add sub-links under those main links
  • how to position those links anywhere on the admin bar
  • the action hook called "admin_menu"
  • the WordPress API functions add_menu_page(), add_submenu_page(), update_option(), get_option()
  • how to create a user form to enter data that will display in our theme
  • showing the data anywhere in our theme, namely header.php and sidebar.php
Code: Expand The User Profile Page
Removing Admin Links From Certain Users
Section 3: WordPress API Programming Commonly Used In Plugins

The Options API is great for saving options to the WordPress database. They can be set to autoload to save data resources with a simple Boolean variable.


The WordPress API is a way to persist data without the need to create web browser cookies. I present all Transient API functions in this one video.


Once an option is created, it stays in the database until it is deleted. Unlike transients, options do not expire. I show you how to delete an option in less than one minute.


The Options API is not just for single WordPress websites. They also work for WordPress multisites as well. In this video, I explain how to use them in less than 60 seconds.


WordPress' Metadata API is extremely powerful, yet very easy to use and master. In this video, I show how to write one line of code to quickly and safely retrieve information from the three metadata tables in the WordPress MySQL database without writing one line of code.


WordPress' Metadata API also allows developers to change data without writing a single line of MySQL. In this video, I write single lines of code to quickly and safely update the meta data for both users and posts.


Just as easily as we can update meta data, we can also add it from scratch and delete it without writing a single line of MySQL. In this video, I write single lines of code to do just that.

Exercise: Write code to add a first and last name to your WordPress admin

Widgets are perhaps the most complex way of presenting data in WordPress, but they can hold all types of data from HTML to PHP to CSS and Javascript. In this video, I create a simple widget to create a form where the WordPress admin can enter a URL for website visitors to visit and then add a blurb underneath the form.

Sample code is attached in the resources section so you can download it and try the following exercises.

Exercise: Add 3 more fields to the Visit Website API and Display Its HTML
Introduction to the Theme Customization API

Bruce explains why shortcodes are necessary and why it is so important to include in our plugins.


Shortcodes are WordPress' way to provide writers and administrators a way to call WordPress functions without doing the PHP code themselves. They can return simple data or be controlled with attributes that resemble HTML attributes.

In this video, we create a simple shortcode using the Shortcode API to return the date and time to the website visitor without the admin requiring one line of HTML to dynamically call the date and time. All that is needed is a simple PHP echo statement and I show you how to code that in this video.


In the last video, I taught you how to add a simple shortcode that returns the date and time, but what if the writer wants to change the color of the returned output? They need to add an attribute.

In this video, I teach you how to add code to support shortcode attributes.


This plugin comes specifically bare. It only shows the date and time, but in this exercise, students must add support for up to 5 attributes. Read the text in this lecture to see what attributes you should add.

Also, feel free to add your own attributes.

5 questions

Test your knowledge of the APIs that I taught in this section.

Section 4: HOOKS: The Most Important Tool In Your WordPress Plugin Development Toolbox

In this introductory video, I explain the benefits of WordPress hooks and their importance for themes and plugins.


The process of writing hooks is easy if we know the basics. In this video, I will explain how to write hooks and their callback functions. You will find them easier than expected.


Hooks come in two flavors. I explain both here and how each type effects WordPress.

Writing The Filter Hook and How To Change Your Post Content Dynamically

Sometimes you have a specific CSS class that you want to include somewhere in the body without the worries of hard-coding them in a theme. If you distribute a plugin with its own CSS classes, you can tell WordPress to add them to the <BODY> tag. I explain how to do that in this video.

Making Things Happen After WordPress Initializes & Minimizing Server Overhead.

Maybe you want to create a theme or plugin that has value for the user. Facebook share buttons are always great for this purpose. I explain how to do it in this video for your theme, but the next video will take the "theme" concept and show you how to do the same thing in your plugins.

5 questions

This quiz helps students access their knowledge of writing WordPress hooks.

Section 5: Developing WordPress Plugins

Watch this video to see what every plugin needs and how to make WordPress list it in the Plugins section of every installation.


This is the start of our plugin. We start with the basics by declaring our plugin to WordPress. Then, we add a title, description, version number and author information.

From there, we add our hooks and callback function.

By the end of this video lecture, our plugin will be ready to use.

Please see the resources section of this lecture to download this plugin for free. We will be building it up in subsequent videos in this section.


Some WordPress themes do not always display a post or page's featured image, creating frustration for the administrator. This plugin will always display the featured image regardless of what the theme is doing. It saves time and headaches for the administrator.


The Hello Dolly plugin is probably the most deleted plugin on most WordPress websites, but it serves as a great beginning to plugin development, so in this video, I take you through the code. In the NEXT video, we will spin our own version of Hello Dolly that is personally suited to us.

Section 6: Creating and Processing Thumbnails for Post Featured Images

We can programmatically create thumbnail sizes instead of using the defaults that come with WordPress such as 'thumbnail', 'large', etc. In this video, I show you how to add image sizes including their width, height and cropping options and then how to apply them to a WP_QUERY loop.


We can tell WordPress how to position crops when adding images.


We can include our custom thumbnail size in a hook called "After Theme Setup" which lumps together multiple functions after the theme is loaded into WordPress.

In this video, I demonstrate how to set up this action hook in the functions.php of my theme. This hook makes your theme more efficient.


When adding media to our posts and pages, we can select exactly what custom images to include in the image selector with 6 lines of code activated by a filter hook.

In this video, I show how to code the image_size_names_choose filter hook to make this happen.


There may be a situation when you need to retrieve just the thumbnail URL of a featured image. One use could be to send people a logo or to link to one from any post of page, other than the featured image from a current ppost that displays through WP_QUERY.

In this video, I show you several ways to get that information from obtaining the post ID to getting the ID of the thumbnail (called the attachment in the WordPress world). The URL will be retrieved with these variables.

5 questions

Test your knowledge on image size development

Section 7: More Quick and Simple, but Powerful Plugins

We have all seen the lyrics to Hello Dolly thanks to this plugin that gets distributed with every WordPress installation, but what if we want to CHANGE those lyrics? We can with this plugin.

In this video, I teach you two action hooks to change the lyrics as well as the admin_head action hook to dynamically add CSS styles that would not come with the admin's theme.


This video explains how to capture users in various criteria and show messages specifically to them. The accompanying plugin for this video contains code for all scenarios.

In the video, I teach you how to detect who the user is and to capture information about them such as username, email, first and last name. We do not get their password for privacy reasons.


Just because an authorized user does not know the administrator login information does not mean that they can still hack the form. Hackers can use brute force techniques to enter with improper security settings.

In this video, we look at code to protect our backend in a private administrator environment where we can redirect unauthorized users and hackers to our home page.

This video also includes a plugin that you can customize in the Resources section.


In this video, I demonstrate how to add code to any plugin or your theme's functions.php file to replace content entered into any post or page using the WordPress filter hook called "the_content" and PHP's ereg_replace to replace dynamic code with regular expressions. We use an example of generating a secure Paypal form with Paypal's hosted button ID.

Additional concepts in this video explains why we need to wrap our WordPress plugins within PHP classes to prevent duplicate naming problems that normally occur with WordPress plugins.


This is a complete video on creating a social media plugin that allows the administrator to enter addresses for Facebook, Twitter, LinkedIn, YouTube and more. The plugin will both create a widget using the Widget API and a template tag that can be added to any theme.


You can create a library of as many shortcodes as you'd like and put them all into one handy plugin. Here, we create a basic library of 2 basic shortcodes and you are free to add as many more as you'd like.

Section 8: Plugin #9: Media File Unzipper

In this video, I demonstrate the plugin works.


We are taking this a few steps at a time. In this video, I will show you how to get the menu link on the left and how to display the upload form.


This is part 1 of the code where we complete the plugin. In this video, you will learn how to:

  1. identify the correct uploads directory
  2. unzip the file with the ZipArchive object
  3. check for allowed file types.

Get the finished plugin in the Resources section for this video.


This is part 2 of the code where we complete the plugin. In this video, you will learn how to:

  1. prepare the information for image files before they enter the media manager 
  2. create the attachment (formal name for files in the media manager)

Check out the Resources section of the previous video (part 1) for the entire plugin.

Section 9: Plugin #10: Tabbed Instructions in WP-ADMIN

I show you how the tabbed instructions work as well as how to:

  1. call and link the CSS file
  2. add a menu item
  3. and what WordPress hooks to use to get the tabs displaying

Building and Populating The Tabs
Customizing The Tabbed Instructions Plugin (Part 1)
Customizing The Tabbed Instructions Plugin (Part 2)
Section 10: Even More Quick and Simple, but Powerful Plugins

We can use Quicktags, which are tiny buttons in the WordPress editor. As developers, we can build them with simple PHP and HTML as well as Javascript. Download the plugin in the Resources section.

Plugin #12: Quicktags WIth Selected Text

Although most WordPress themes come with their own search bars, they search everything from posts, pages, and custom post types, but if you just want a search bar to work for a specific custom post type and not posts or pages. We will develop this plugin to accomplish that. We will develop this plugin as a shortcode that can be added anywhere in a theme or the content editor.


I Have a plugin that you can customize to allow the admin to add ratings with custom background colors and icons. It is based off of a star rating system, but you can substitute any icons you like instead of stars and customize the HTML and CSS anyway you see necessary,

Section 11: Q&A: Add your questions to the discussion board and I will answer them here!

Ask your questions in the discussion board.


A student has trouble using update_metadata, so I created a video to address this in case anyone else has the same question or issue.

Section 12: Conclusion and Bonus Lecture
Bonus Lecture: Coupons For My Other WP Courses & Websites For Web Developers
1 page

Students Who Viewed This Course Also Viewed

  • Loading
  • Loading
  • Loading

Instructor Biography

Bruce Chamoff, Web Developer of 20 Years and Songwriter of Over 40 Years

CEO of the Web Designer Mall, a one-stop shop for all web designers and web developers.

I have designed and developed over 1,000 websites in the past 20 years for companies of all sizes from small businesses to major Fortune 500 corporations. Being the owner of a prestigious online mall for web developers, I have programmed everything from WordPress to Drupal to Joomla to simple HTML5.

Involved in the WordPress Community. I am also a speaker at WordCamps in the United States. 

The Music, The Songwriting

I love writing, recording, and producing music, mainly my own originals. I play sax and piano and have over 150 songs. Yes, I should have gone for that record deal, but I still enjoy the process of making music!

Ready to start learning?
Take This Course