
Explore how to extend WordPress with plugins by mastering the WordPress API, action and filter hooks, and creating custom post types, widgets, and templates.
Joe Chapman introduces himself, outlining a human-computer interaction background and fifteen years as a freelance web developer. He highlights plugin and theme work, teaching, collaborating with small businesses and nonprofits.
Explore the WordPress plugin landscape by examining the official plugin directory, the beta testing area, and free-to-premium plugins, then engage communities at meetups and WordCamps to reuse existing solutions.
Compare themes and plugins in WordPress from a developer's perspective, noting look and feel vs. functionality. Prefer plugins for functionality to avoid theme bloat and lock-in.
Set up a local web server with MAMP to run WordPress, installing Apache, MySQL, and PHP, and configure ports and localhost for plugin and theme development.
Set up WordPress on MAMP by placing WordPress in the htdocs directory, configuring a local database via phpMyAdmin with utf-8 encoding, and running the WordPress installer at localhost/wordpress.
Explore how desktop server enables local WordPress development with built-in host management, blueprints, and one-click WordPress setups, including a free three-site limit and premium options.
Choose and configure an integrated development environment for WordPress, explore options like PhpStorm and NetBeans, and set up a local server and WordPress project for efficient coding.
Enable WordPress support for your PhpStorm project, specify the WordPress root, and apply WordPress coding standards through code style with tabs, smart tabs, and code completion for plugins.
Configure xdebug with PhpStorm to debug WordPress locally, using Map Pro or Desktop Server, enable remote debugging, and use browser extensions to run and set breakpoints.
Explore online WordPress plugin documentation—from the Codex plugin API and action and filter references to developer.wordpress.org, plus offline tools like Dash and Velocity for quick access.
Discover essential WordPress development tips using plugins like Query Monitor, WP Migrate DB, and WordPress Beta Tester; harness WP-CLI and WP Shell for efficient site management and troubleshooting.
Learn how actions and filters—the hooks WordPress uses—let plugins modify responses, admin interfaces, and content. Discover how to add custom hooks, manage priorities, and extend WordPress safely without editing core.
Compare using custom post types versus custom data tables for plugin data, and use the options and settings APIs to manage plugin settings with performance considerations like caching.
Master WordPress plugin security by implementing permissions checks, validating and sanitising data, escaping output, and using nonces to prevent cross-site request forgeries.
Learn to sketch a simple WordPress plugin mockup, using the web inspector to inspect elements and edit the page, then save a static copy to plan development.
Learn to create a WordPress plugin shell by organizing files in a plugin folder, adding the metadata header, and activating the plugin to see initial changes.
Find the right WordPress hooks for your plugin using plugin API references, code references, and source inspection tools. Explore practical search strategies for actions, filters, and the welcome panel.
Implement and customize WordPress hooks by removing the default welcome panel and adding a custom message via remove_action and add_action in a plugin.
Refactor a procedural WordPress plugin into a single object-oriented class using the singleton pattern, encapsulating hooks, methods, and properties to avoid function name collisions.
Enqueue a custom stylesheet for a WordPress plugin by registering and queuing the style in the admin area, using the plugin URL with __FILE__ to point to the CSS file.
Plan a movie review custom post type in WordPress, using core features and overridable templates, with fields for title, body, poster, score, release date, director, and IMDb link.
Create a WordPress plugin folder, register a custom post type named movie review using the init hook, and define labels, supports, and public visibility for readers.
Learn to customize a WordPress custom post type with register_post_type: set dash icons, adjust menu position, control visibility in menus and admin bar, and configure rewrite permalinks.
Learn to implement activation and deactivation hooks in WordPress plugins, register custom post types, and flush rewrite rules to ensure permalinks work after activation.
Learn how to enable and use core WordPress custom fields within a custom plugin, configure them via register_post_type, display them in templates, and assess limitations and encapsulation issues.
Integrate a third-party plugin, Meta Box, with your WordPress plugin to create and manage custom fields and meta boxes. Activate required plugins using the TGM Plugin Activation library.
Define and register a custom taxonomy for the movie reviews post type, using movie types with hierarchical categories and rewrite rules to mirror or extend built-in category semantics.
Provide a default custom post type template in the plugin and allow theme authors to override it. Enqueue a stylesheet so the title, poster, rating, and fields render correctly.
Create a custom WordPress widget for movie reviews by extending WP_Widget and copying the recent posts widget. Initialize and register the widget in the plugin using widgets_init and register_widget.
Modify the WordPress widget class to support movie reviews by updating constructor, widget, update, and form methods, and configure the custom post type query with title, number, and show date.
Learn to add a WordPress plugin options page by hooking into the admin menu, creating a top-level and a sub menu under movie reviews, with a translatable title.
Register a single WordPress option to hold ten ratings, build a movie review settings page with a section and fields, and implement a submit form for saving.
Create a user interface for custom options in WordPress using the settings API, render rating input fields, store them as an array, and apply defaults.
Sanitize plugin options with a callback by applying sanitize textfield to each value via array map, ensuring safe database storage. Integrate and display them using WordPress settings API with defaults.
Build and expose your own plugin hooks using apply_filters and do_action to let themes and developers customize behavior, including filtering recent reviews and extending the options page.
Make your WordPress plugin accessible worldwide by internationalizing all public facing text using gettext functions like double underscore, underscore e, and _x, with a proper text domain.
Prepare your WordPress plugin for localization by loading translation files from a domain path and implementing a load text domain method triggered on plugins_loaded to load language packs from WordPress.org.
Discover how the WordPress REST API plugin enables pulling and pushing data to a WordPress site via http requests, exposing posts, pages, media, and more.
Explore how WordPress uses caching, focusing on the transients API to cache expensive data from third-party services, with a hands-on example of caching a slow API in a dashboard widget.
Implement the WordPress transients API to cache dashboard data, using get_transient and set_transient with expiration settings to speed up slow third-party requests and improve performance.
Create a custom data table with the WPDB class and log dashboard visits by user login and Unix timestamp, and activate the plugin to create the table and insert visits.
Learn how to gracefully handle deactivation and uninstallation of a WordPress plugin, using deactivation and uninstall hooks to clean caches, rewrite rules, and database data while preserving data when needed.
Submit a WordPress plugin to the WordPress.org directory by ensuring unique naming, creating a compliant readme, validating code, following WordPress coding standards, and using Subversion with banner and icon assets.
Explore how to publish and collaborate on WordPress plugins using GitHub and WordPress.org, comparing subversion workflows, forking, and pull requests to keep two repositories in sync.
Learn practical strategies for monetizing WordPress plugins, including free and premium versions, add-on services, and paid support, while following WordPress guidelines and responsible pricing.
Explore the WordPress plugin boilerplate and grunt to scaffold and optimize plugins, then explore React or AngularJS, the REST API, and how to contribute through the plugin handbook.
Wrap up the course by explaining why we write WordPress plugins, setting up local development, building basic plugins, and gaining confidence to monetize ideas.
In this Creating Plugins to Extend WordPress training course, expert author Joe Chellman will teach you how to create your own plugins using the WordPress API. This course is designed for users that already have a basic working knowledge of WordPress.
You will start by learning about the highlights of the WordPress API, then jump into creating your first plugin: a dashboard banner. From there, Joe will teach you how to create your second plugin, as well as how to further enhance your plugin, including how to create a widget for custom posts, register settings and sections, and prepare your plugin for localization. This video tutorial also covers additional plugin possibilities, such as using transients to cache expensive operations, implementing the transients API, and reacting to deactivation and uninstallation of your plugin. Finally, you will learn how to distribute your plugin, including how to publish independently on GitHub and submit to the WordPress plugin directory.
Once you have completed this computer based training course, you will have learned how to create and distribute your own plugins using PHP and the WordPress API. Working files are included, allowing you to follow along with the author throughout the lessons.