Tutorials
Short, focused articles on one idea at a time. Filter by level or type, or search for a topic.
-
Background jobs with Action Scheduler
Run large or delayed work reliably in batches with Action Scheduler, building on WP-Cron.
-
Plugin security checklist
A review checklist for plugins: capabilities, nonces, sanitising, escaping, SQL and file handling.
-
Admin list table columns and dashboard widgets
Add sortable columns to post lists and simple dashboard widgets.
-
Integrating plugins with the block editor
Ship blocks, block bindings and editor panels from a plugin, and register meta for the editor.
-
Plugin dependencies with Requires Plugins
Declare plugin dependencies in the header, check for them at runtime and degrade gracefully.
-
Object-oriented plugin architecture
Structure larger plugins with namespaces, classes, hook registration and clear responsibilities.
-
Composer and autoloading in plugins
Use Composer autoloading and dependencies in plugins, and prefix vendor code to avoid conflicts.
-
Automated tests for plugins
Set up the WordPress test suite for a plugin, write integration tests, and run them in CI.
-
Coding standards with PHPCS and WPCS
Check code against WordPress Coding Standards with PHPCS, fix issues automatically and add it to CI.
-
Data migrations and plugin updates
Run upgrade routines between plugin versions, migrate data in batches, and stay backwards compatible.
-
Multisite-compatible plugins
Network activation, per-site tables and options, and testing plugins on Multisite.
-
Shortcodes
Register shortcodes with attributes, return output safely, and when a block is better.
-
Privacy tools: personal data export and erasure
Hook into WordPress privacy tools so users can export and erase data your plugin stores.
-
Custom database tables
Create and upgrade tables with dbDelta, version the schema, and when meta is the wrong store.
-
Licensing and updates for premium plugins
Deliver updates outside WordPress.org, licence checks and GPL obligations.
-
Admin notices and admin UI conventions
Show dismissible notices, follow admin UI conventions and avoid nagging users.
-
Publishing on the WordPress.org plugin directory
Prepare the readme, pass review guidelines, use SVN releases and support users.
-
AJAX in WordPress plugins
Handle admin-ajax requests with nonces and capability checks, and when the REST API is better.
-
Plugin performance at scale
Keep plugins fast on large sites: query discipline, caching, lazy loading and avoiding autoload bloat.
-
Meta boxes and custom fields without a library
Add meta boxes, save post meta with nonces and sanitisation, and register meta for REST.